【问题标题】:Change Yesod port number更改 Yesod 端口号
【发布时间】:2015-11-11 19:46:31
【问题描述】:

Deploying Yesod web app,我可以复制可执行文件、静态文件和配置文件,以将 Yesod 作为独立的 Web 服务器运行。这是目录结构。

├── config
│   ├── client_session_key.aes
│   ├── favicon.ico
│   ├── keter.yml
│   ├── models
│   ├── robots.txt
│   ├── routes
│   ├── settings.yml
│   ├── sqlite.yml
│   └── test-settings.yml
├── my-project
├── my-project.sqlite3
└── static

我尝试通过更改 config/settings.yml 来使用不同的端口

port:           "_env:PORT:3002"
approot:        "_env:APPROOT:http://localhost:3002"

但是,应用程序仍然可以通过端口 3000 访问。即使我删除了 settings.yml,但没有错误消息。

更改端口的方法是从https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables更改环境变量export PORT=3002,但我不是我可以使用的。

对于开发,我可以使用 stack exec -- yesod devel -p 3003 (how can I change the settings (e.g., port) used by "yesod devel"?),但我似乎没有将 -p 选项与 Yesod 可执行文件 (my-project) 一起使用。

为什么可执行文件没有(似乎)加载config/settings?如何设置在 Yesod Web 应用程序中使用不同的端口?

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

    看起来设置文件应该与可执行文件位于同一目录中。

    我将config/settings.yml复制到当前目录,然后运行./my_project settings.yml,现在它正确使用了3002端口。

    我有一些来自https://github.com/yesodweb/yesod/issues/474的提示

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      相关资源
      最近更新 更多