如何在Elm中没有#(散列)的URL中进行路由/导航?
使用UrlParser.parseHash
功能我是能够成功地解析以下网址:如何在Elm中没有#(散列)的URL中进行路由/导航?
http://localhost:8000/MyRepl.elm/#home/something-else
如所期望的行为,当我复制在浏览器中粘贴并回车 - 应用程序加载与相应的视图。
但是现在我想删除#
并为此使用UrlParser.parsePath
函数。我完全像以前一样保留了其他代码 - 但由于某种原因,这不起作用。
当我复制粘贴,然后回车:
http://localhost:8000/MyRepl.elm/home/something-else
- 注意无#
。
浏览器向elm -reactor localhost服务器创建直接请求。
没有路由发生。榆树反应器服务器返回404 - 因为如果没有命名/MyRepl.elm/home/something-else
但是路由不#
因为http://package.elm-lang.org/packages
应该是可能的文件 - 文件的网站是用榆木并且在你可以看到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'));
});
榆树反应器不支持此功能。
如果您正在使用的WebPack你可以做的historyApiFallback
属性How to tell webpack dev server to serve index.html for any route
以上是 如何在Elm中没有#(散列)的URL中进行路由/导航? 的全部内容, 来源链接: utcz.com/qa/260514.html