聚合物应用程序路由:截距刷新页面



我正在努力摆脱当前情况:我们有一个部署在某个服务器上并绑定到某个URL的聚合物spa( a (:http://example.com/a,我们确实需要在暂时显示旧应用程序的旧版页面不同的URL(http://example.com/b(。

B所做的是框架旧版应用程序的页面,并公开一个按钮,其目的是通过访问文档来返回到以前的位置。引用值并重新加载页面,问题是成为水疗中心,服务器上不存在URL。

更多详细:

  1. 用户在应用程序中登录(http://example.com/a/overview(
  2. 用户使用水疗中心,最终在路由管理的某个URL(http://example/a/setpe/sell/sell/jackets(
  3. 在页面http://example.com/a/stuff/we/sell/jackets中有一个链接到应用程序b,构建了旧应用程序的页面,显示夹克
  4. 用户单击链接,然后访问http://example.com/ b/legacy/jackets,此时document.referrer等于http://example.com/ a /qust/we/sell/jackets
  5. 用户单击按钮以关闭视图,应用程序B将窗口的位置设置为文档。引用器试图从他/她来的位置降落用户。
  6. 作为一个应用程序,url http://example.com/ a/st_/stuff/we/sell/jackets/jackets在服务器上不存在,并且用户(正确(A 404。

因此,问题是:是否有任何方法可以拦截窗口的更改。应用程序路由中的location变量以避免页面的完整刷新并将用户降落在链接所在的页面中?<?/em>

如果我正确理解这一点,那么这似乎是您的服务器配置的问题。

如果您确实有一个水疗中心,则希望所有URL都进入您的应用程序shell(通常是您的index.html(。

示例:

http-root
├─ some-folder
│  └─ index.html
└─ index.html

例如,如果您有Apache运行,则可以转到:

  • http://example.com/index.html
  • http://example.com/some-folder/index.html

如果您转到http://example.com/stuff/we/sell,则会遇到错误,因为stuff不是有效的目录。

在您的水疗中心,您可能会有一些路由系统,可以使您四处移动,并在不进行重新加载的情况下对URL进行更改。因此,如果您使用水疗中心,然后进行真正的重新加载,您仍然应该在以前的地方最终出现。

如何工作取决于您的服务器。例如,对于Apache,您可以通过.htaccess提供重写。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html[L]
</IfModule>

无论您的URL是什么,您都将始终在HTTP-ROOT index.html最终出现。然后您的水疗中心可以接管;读取URL并显示适当的数据。

IMHO在服务器上解决此问题是解决问题的适当解决方案。

我确实同意@dakmor实际上,您绝对不应恢复404形成服务器 - 您可以从聚合物应用程序中获得该服务器。

获取文件,如果不存在,请尝试索引。在每个服务器中看起来都不同。您正在使用哪种服务器?我可以为IIS和NGINX提供帮助。

相关内容

  • 没有找到相关文章

最新更新