【发布时间】:2017-07-04 21:16:09
【问题描述】:
我有一个 Django 1.9.6 站点部署到 Heroku。当DEBUG=False 我收到服务器错误(500)。日志中没有任何有用的信息,所以我尝试使用DEBUG=True 运行它。现在它工作正常。我认为这个问题可能与我的 scss 文件处理有关,这真的让我很困惑,我一直在努力解决。我最近——除其他事项外——在我的设置文件中添加了COMPRESS_OFFLINE = True,并将其注释掉似乎可以缓解问题(尽管那时我的 scss 文件不起作用)。
我的一些静态settings.py。如果你需要更多,请告诉我——这对我来说是个谜。我尽量关注this。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media/")
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media/")
在urls.py:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += [
url(r'^media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT
}),
]
urlpatterns += staticfiles_urlpatterns()
编辑:
我已经开始记录工作,并且我已经确认这是一个压缩错误。我收到错误消息:
Internal Server Error: /
OfflineGenerationError at /
You have offline compression enabled but key "171c3b7763dbc51a465d996f7d920cf5" is missing from offline manifest. You may need to run "python manage.py compress".
这与我在本地获得的相同,除了运行建议的命令解决了它。运行 heroku run python manage.py compress 没有效果(不过运行没有错误)
【问题讨论】:
-
您如何提供静态文件?在 Heroku 或其他服务上?
-
我感觉这与此有关——我对一般的静态文件感到非常困惑。我可能设置错了。我不知道为什么除了我的 scss 文件之外的所有文件都出现了。我主要试图遵循这一点。 devcenter.heroku.com/articles/django-assets 会更新我的问题。
-
日志不包含任何有用的信息,但您介意分享这些日志吗?
-
您的网站是否在 DEBUG=False 的情况下在本地运行?
-
@DanielHepper 在这一点上,部分。缺少一些(不是全部)静态资产。我还没有找到与缺失的共同点(所有图像,但一些图像正在加载)