AngularJs 无法在本地主机上的 url 中获取带点的路由
AngularJs cannot get route with dot in url on localhost
使用路由提供程序并设置此路由:
.when('/:name/:id', {
当我使用时它有效(进入我的路线并执行代码):
https://localhost.myapp.com:9000/Paul/123
但使用这个 url:
不起作用
https://localhost.myapp.com:9000/Paul/123.456
但是我的 id = 123.456,所以我需要使用第二种情况,但出现错误“Cannot GET ...”,所以我认为点是问题所在。
如果我检查网络选项卡,我会看到浏览器将 123.456 解释为文件 readme.txt
它认为点后面的字符是文件的扩展名。
奇怪的是,它在生产中有效。
知道如何解决这个问题吗?
我已经找到了这个问题的答案。它与 webpack 有关,它只存在于我的本地主机上,而不存在于生产环境中(这解释了为什么我只在本地主机上遇到这个问题)。
我必须在 webpack 配置文件 webpack.dev.js
的 devServer
部分下添加此设置:
historyApiFallback: {
disableDotRule: true
}
使用路由提供程序并设置此路由:
.when('/:name/:id', {
当我使用时它有效(进入我的路线并执行代码):
https://localhost.myapp.com:9000/Paul/123
但使用这个 url:
不起作用https://localhost.myapp.com:9000/Paul/123.456
但是我的 id = 123.456,所以我需要使用第二种情况,但出现错误“Cannot GET ...”,所以我认为点是问题所在。
如果我检查网络选项卡,我会看到浏览器将 123.456 解释为文件 readme.txt
它认为点后面的字符是文件的扩展名。
奇怪的是,它在生产中有效。
知道如何解决这个问题吗?
我已经找到了这个问题的答案。它与 webpack 有关,它只存在于我的本地主机上,而不存在于生产环境中(这解释了为什么我只在本地主机上遇到这个问题)。
我必须在 webpack 配置文件 webpack.dev.js
的 devServer
部分下添加此设置:
historyApiFallback: {
disableDotRule: true
}