如何使heroku自动运行compilemessages就像它运行collectstatic一样

时间:2015-02-03 20:05:01

标签: django heroku

python manage.py compilemessages

locale/en/LC_MESSAGES/django.mo等翻译源文件名创建名为locale/en/LC_MESSAGES/django.po的已编译翻译文件。

我希望git忽略*.mo个文件而不将其提交到存储库,因为它们不是源文件。

Heroku已经知道要执行

python manage.py collectstatic

对于django项目。

如何让它也执行compile messages

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

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

1 个答案:

答案 0 :(得分:2)

  1. 在项目根目录中创建一个文件:bin/post_compile
  2. 添加第./manage.py compilemessages
  3. git push origin
  4. git push heroku
  5. 当您将分支推送到Heroku时,它现在应该运行该命令。我不确定自定义bin/post_compile文件是否会覆盖Heroku所做的自动检测,因此如果您发现它已不再运行collectstatic,只需在compilemessages下方弹出该行即可行,但将--noinput添加到该行,以便管理命令不会提示您键入“是”以确认您要覆盖现有文件。