我正在建立一个小型网站。后端是用 Kotlin 编写的,并使用 Spring boot ,前端内置于Elm .
生成的 JavaScript 应用程序将由我的后端在部署时静态提供服务。
对于开发,我目前的工作是这样的:
- 在 localhost:8080 上提供我的 Spring Boot 应用程序
- 使用 create-elm-app 在 b 上提供我的 Elm 应用程序
主要原因是create-elm-app允许Elm应用热编译和热重载,这非常方便。
问题是我必须在本地针对另一个端口设置所有 elm http 调用,这意味着我必须更改生产代码。
理想情况下,我想:
- 要么对发生变化的 elm 代码进行实时重新编译(我在 Node 中使用了 chokidar,但没有找到直接的 Java 替代方案),并与 Spring Boot 热重载相结合
- 让 create-elm-app 重定向我的 API 调用
- 或者通过第三方将我的所有调用自动代理到另一个位置
有人有这方面的经验吗?您会推荐什么设置?
干杯,
最佳答案
好吧,使用代理这个词确实有帮助!
似乎 create-elm-app
文档已经预料到了这个用例。您可以阅读更多about it here .
基本上需要做的是:
- 在 elm 项目的根目录下创建一个
elmapp.config.js
文件,其中包含以下内容(在我的例子中,您可以调整):
module.exports = {
proxy: "http://localhost:8080",
}
然后,在您的 elm 代码中,使用绝对 URL。例如:
makeCreateGameUrl : Model -> String
makeCreateGameUrl model =
absolute
[ "game" ]
[ string "players" (joinListOfStrings model.newPlayerNames) ]
此后,您的 API 调用将直接重定向到您的后端。
关于spring - 开发中的代理前端HTTP调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55082072/