在我的带有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)
我不知道如何让它发挥作用。而且我仍然不确定这是否会有所帮助。
有类似经历的人吗?
答案 0 :(得分: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);
}
因此,如果用户或浏览器添加了一个尾部斜杠,页面将重新加载,而不会显示尾部斜杠。
知道这件事很好,仍然希望能够抓住罪魁祸首并在某一天解决它而不是在它周围航行。