更改 Yesod 端口号
Change Yesod port number
从 ,我可以将可执行文件、静态文件和配置文件复制到 运行 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 可执行文件(我的项目)一起使用。
为什么可执行文件不(似乎)加载 config/settings
?如何在 Yesod 网络应用程序中设置使用不同的端口?
看起来设置文件应该与可执行文件位于同一目录中。
我在当前目录中复制了 config/settings.yml,然后 运行 ./my_project settings.yml
,现在它正确使用了 3002 端口。
那里得到了一些提示
从
├── 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 可执行文件(我的项目)一起使用。
为什么可执行文件不(似乎)加载 config/settings
?如何在 Yesod 网络应用程序中设置使用不同的端口?
看起来设置文件应该与可执行文件位于同一目录中。
我在当前目录中复制了 config/settings.yml,然后 运行 ./my_project settings.yml
,现在它正确使用了 3002 端口。