0

在我的带有 ui.router 的 AngularJS 应用程序中,如果结尾有斜杠,URL 中的参数将被解释为路径。

什么有效:

http://example.com/product/123

什么不起作用:

http://example.com/product/123/

在控制台中,我看到 AngularJS 正在寻找所有文件, http://example.com/product/123/而不是http://example.com/product

谷歌告诉我有一个选项$urlMatcherFactory.strictMode(false)我不知道如何让它工作。我仍然不确定这是否会有所帮助。

有类似经历的人吗?

4

1 回答 1

0

我没有运气,$urlMatcherFactory.strictMode(false)我认为 vhost 别名和条件 htaccess RewriteBase 的混合导致了一些我无法在五个小时内弄清楚的冲突。

我现在做了什么,效果很好:

在 index.html 的最顶部我放了这个脚本:

var url = window.location.href;
if (url.slice(-1) == '/') {
    window.location.href = url.substring(0, url.length - 1);
}

因此,如果用户或浏览器添加了斜杠,则页面会在没有斜杠的情况下重新加载。

知道这很好,仍然希望有一天能抓住罪魁祸首并修复它,而不是绕着它航行。

于 2015-04-04T20:02:18.490 回答