我正在努力摆脱目前的局面:我们在某个服务器上部署了聚合物SPA( A )并绑定到某个网址:http://example.com/A,我们确实需要为了显示旧应用程序的遗留页面,为了做到这一点,已经开发了一个新的应用程序( B )并绑定到不同的URL(http://example.com/B)。 / p>
B做的是框架遗留应用程序的页面并显示一个按钮,其目的是通过访问document.referrer值并重新加载页面返回到先前的位置,问题是A是SPA,服务器上不存在URL。
更详细:
所以问题是:有没有办法拦截应用程序路由中window.location变量的变化,以避免页面的完全刷新,并将用户置于链接所在的页面? / em>的
答案 0 :(得分:4)
如果我理解正确,那么这似乎是您的服务器配置问题。
如果您有SPA,您希望所有网址都转到您的app-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
不是有效目录。
在您的SPA中,您可能会有一些路由系统可以移动您,并在不进行重新加载的情况下对Url进行更改。因此,如果您使用SPA然后进行真正的重新加载,您仍然应该到达之前的地方。
这将如何工作取决于您的服务器。例如,对于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>
使用此功能无论您的网址是什么,您都将始终以http-root index.html
结束。然后您的SPA可以接管;阅读网址并显示相应的数据。
imho在服务器上解决这个问题是解决问题的合适方法。