使用该UrlParser.parseHash功能,我能够成功解析以下网址:
http://localhost:8000/MyRepl.elm/#home/something-else
行为是预期的,当我复制粘贴在浏览器中并点击回车 - 应用程序加载适当的视图.
但现在我想删除#和我使用的UrlParser.parsePath功能.我完全像以前一样保留了其余代码 - 但由于某种原因,这不起作用.
当我复制粘贴这个并点击回车:
http://localhost:8000/MyRepl.elm/home/something-else- 通知没有#.
浏览器向elm -reactor localhost服务器创建直接请求.
没有路由发生.elm reactor服务器返回404 - 就好像没有命名文件一样/MyRepl.elm/home/something-else
但是#应该没有路由,因为http://package.elm-lang.org/packages- Docs站点是用elm编写的,#你可以看到url中没有.
问题:
任何人都遇到过同样的问题?任何想法如何解决这一问题?
或者你能指点我的导航没有#按预期工作吗?
您需要一个为每个请求提供索引页面服务的后端.在提供索引页面之后,路由将像往常一样在Elm中发生.
例如,在表达中,它看起来像:
router.get('/', function(req, res) {
res.sendFile(path.join(__dirname, 'public/index.html'));
});
router.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, 'public/index.html'));
});
Run Code Online (Sandbox Code Playgroud)
榆树反应堆不支持这一点.
如果您正在使用webpack,则可以使用historyApiFallback属性如何告诉webpack dev服务器为任何路由提供index.html