gpt4 book ai didi

elm - 如何在 URL 中没有 #(哈希)的情况下在 Elm 中进行路由/导航?

转载 作者:行者123 更新时间:2023-12-04 01:06:52 25 4
gpt4 key购买 nike

使用 UrlParser.parseHash函数我能够成功解析以下网址:
http://localhost:8000/MyRepl.elm/#home/something-else
行为正如预期的那样,当我将其复制粘贴到浏览器中并按 Enter 键时 - 应用程序会以适当的 View 加载。

但现在我想删除 #为此我使用了 UrlParser.parsePath功能。我完全像以前一样保留了其余的代码 - 但由于某种原因这不起作用。

当我复制粘贴此内容并按 Enter 键时:
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 - 文档站点是用榆树写的,没有 #如您所见,在网址中。

问题:

任何人都遇到过同样的问题?任何想法如何解决这一问题?

或者你能给我指出一个没有 # 导航的仓库吗?按预期工作?

最佳答案

您需要一个后端来为每个请求服务您的索引页面。在为索引页面提供服务后,路由将在 Elm 中照常进行。

例如,在 express 中,它看起来像:

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'));
});

Elm reactor 不支持这个。

如果你使用 webpack,你可以用 historyApiFallback 做同样的事情属性 How to tell webpack dev server to serve index.html for any route

关于elm - 如何在 URL 中没有 #(哈希)的情况下在 Elm 中进行路由/导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40832298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com