如何使heroku在运行collectstatic时自动运行compilemessages

yai*_*chu 6 django heroku

python manage.py compilemessages
Run Code Online (Sandbox Code Playgroud)

locale/en/LC_MESSAGES/django.mo从翻译源文件名(如)中创建名为的编译后的翻译文件locale/en/LC_MESSAGES/django.po

我想让*.mogit忽略这些文件而不将它们提交到存储库,因为这些不是源文件。

Heroku已经知道要表演

python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

用于Django项目。

我如何使它也发挥作用compile messages

目前,我通过将编译结果文件(*.mo)添加到我的存储库中来解决此问题,但我想知道是否有更好的方法。

(如果相关-我网站的仓库:https : //github.com/yairchu/vote_tool

Ste*_*man 5

  1. 在您的项目根目录中创建一个文件: bin/post_compile
  2. 添加行 ./manage.py compilemessages
  3. git push origin
  4. git push heroku

当您将分支推送到 Heroku 时,它现在应该运行该命令。我不确定拥有自定义bin/post_compile文件是否会覆盖 Heroku 所做的自动检测,因此如果您发现它不再运行collectstatic,只需将该行弹出到您的compilemessages行下方,但添加--noinput到该行中,以便管理命令不会提示您输入“是”以确认您要覆盖现有文件。