如何导航到我的 Elm 应用程序中的另一个页面?

How do I navigate to another page within my Elm application?

如何导航到我的 Elm 应用程序中的另一个页面?

具体来说,我正在尝试从 主页 页面导航到 投稿人 页面。

贡献者 页面位于我的 Domain 文件夹下。

文件结构如下:

- Home.elm
- Domain
  - Contributor.elm

我以为我可以做这样的事情:

a [href "Domain/Contributor.elm"] [text "click me!"]

或者这个:

a [href "Domain/Contributor.html"] [text "click me!"]

然而,这些路径都不起作用。

注意: 我正在开发的应用不是 SPA。

我不相信您可以在不构建 SPA 的情况下在 Elm 应用程序中进行您尝试进行的那种导航。您正在尝试使用 HTML href 属性进行导航。该属性必须是真实的 URL。如果不使用 Elm 导航包之类的东西,您将无法支持多条路线。

Elm 中的简单导航非常简单。我写了一个blog post on this subject

此外,这里是 github repo that demonstrates the work post。

您正在使用 elm-live,这是一个开发服务器。它以单个 Elm 源文件作为入口点,因此除非您的 Elm 代码是作为单页应用程序构建的,否则您将无法导航到另一个文件(尽管硬编码没有任何问题 href link 在其他地方 link。

elm-live 也仅用于开发。你不会想 运行 它在生产服务器上。

如果您试图避免 SPA 并希望每个 Elm 文件代表单个页面的完整功能,也许您可​​以使用 elm make 的默认功能,它会生成 HTML 包含从 Elm 代码编译的内联 javascript 的文件。从本质上讲,这就是 elm-lang.org 网站的驱动力。如果您查看源代码,您会看到默认 elm make 命令生成的 html,针对应用程序的每个 Elm 文件 "page" 编译。

另一方面,如果您正在尝试构建 SPA,@Bill 的回答是一个很好的起点。