我有一个Django应用程序与whitenoise静态文件。但是当我用Google灯塔测试这个应用程序时,我会被要求为我的静态.js和.css文件启用文本压缩。
我读了很多相关的文章,但都找不到答案。
我还遵循了Heroku的指南来实现它。https://devcenter.heroku.com/articles/django-assets
设置
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django_user_agents.middleware.UserAgentMiddleware',
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'我也使用Dropbox的媒体文件,但似乎不是一个问题,我我删除它,我仍然有静态文件的问题。
DEFAULT_FILE_STORAGE = 'storages.backends.dropbox.DropBoxStorage'需求
我确实在需求中包含了最新的Whitenoise,并且在部署Heroku时没有出错:
whitenoise==4.1.2在灯塔进行测试时,会要求压缩这些文件。它们来自静态文件夹,当我运行Manage.py集合时,我知道它们应该被压缩。
…css/bootstrap.min.css(afternoon-wildwood-39943.herokuapp.com)
…js/jquery-3.2.1.min.js(afternoon-wildwood-39943.herokuapp.com)
…js/bootstrap-table.min.js(afternoon-wildwood-39943.herokuapp.com)
…css/Fran%20Style.css(afternoon-wildwood-39943.herokuapp.com)
…js/popper.min.js(afternoon-wildwood-39943.herokuapp.com)调试设置
我读到,可能应该将调试设置为False,以使其正常工作。上面的例子是用Debug = True完成的。
DEBUG = bool(os.environ.get('DJANGO_DEBUG', True))这个应用程序在这种情况下可以正常工作,但是如果将调试转换为False,我得到并错误了500页。
我要在Heroku主持。您可以在:http://afternoon-wildwood-39943.herokuapp.com/website/中尝试一个示例
有什么线索吗?提前感谢!
发布于 2019-09-16 19:36:30
感谢Heroku的支持,我找到了解决这个问题的方法。现在,我的应用程序运行良好,调试设置为false,我获得了whitenoise提供的Gzip静态文件。
集静态
首先,您应该在将应用程序部署到Heroku之前运行收集器命令,我一直认为这是部署后要做的事情。
Procfile
在procfile中,您应该添加以下代码:
release: python manage.py migratehttps://stackoverflow.com/questions/57939784
复制相似问题