2015-11-11 5 views
0

От Deploying Yesod web app я мог бы скопировать исполняемый файл, статический и файл конфигурации, чтобы запустить Yesod в качестве автономного веб-сервера. Это структура каталогов.Изменить номер порта Yesod

├── 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 

Я пытался использовать другой порт, изменив конфиг/settings.yml

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

Однако, приложение по-прежнему доступны с портом 3000. Даже я удалил settings.yml, но не было сообщение об ошибке.

Способ изменения порта состоял в изменении переменных окружения export PORT=3002 от https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables, но я не это то, что я могу использовать.

Для разработки я могу использовать 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?

ответ

0

Похоже, файл настроек должен находиться в том же каталоге, что и исполняемый файл.

Я скопировал config/settings.yml в текущем каталоге, затем запустил ./my_project settings.yml, теперь он правильно использует порт 3002.

У меня есть подсказки от https://github.com/yesodweb/yesod/issues/474

Смежные вопросы