【发布时间】: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 应用程序中使用不同的端口?
【问题讨论】: