【发布时间】:2013-10-25 03:24:28
【问题描述】:
我关注了官方Heroku docs on Django and Static Assets;我已经安装了dj-static 并将其添加到我的requirements.txt 文件中,正确配置了我的settings.py 文件中的所有变量:
STATIC_ROOT = os.path.join(CONFIG_ROOT, 'served/static/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(CONFIG_ROOT, 'static'),
)
这就是我的wsgi.py 的样子:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_django_project.settings")
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
Procfile的内容:
web: gunicorn --bind 0.0.0.0:$PORT my_django_project.wsgi:application
在文档中,它说“collectstatic 在正确配置后会自动运行”。但是当我导航到我的网站时,显然没有 css。
我已经尝试使用heroku run 使用debugging,但这只是按预期复制静态文件。
我注意到当我在Procfile 中包含collectstatic 命令时,即
web: python my_django_project/manage.py collectstatic --noinput ; gunicorn -b 0.0.0.0:$PORT my_django_project.wsgi:application
...按预期工作,并提供静态文件。
但奇怪的是,当我运行heroku run bash 并查看STATIC_ROOT 指向的目录时,那里什么都没有!事实上,整个served/ 目录都丢失了,但静态文件仍在提供中!
我仍然想知道为什么collectstatic 没有自动运行——就像文档中提到的那样——当我将我的 Django 应用程序部署到 Heroku 时。
【问题讨论】:
-
@fasouto 试过了;没有收到任何错误。最后我收到了一堆
Pretend to copy '...'和284 static files copied.消息。
标签: django heroku static-files procfile