默认情况下,ManifestStaticFilesStorage
仅在DEBUG=False
时返回包含哈希值的网址。我希望我的开发环境尽可能接近生产环境,但我确实需要在开发过程中将debug设置为False。有没有办法告诉ManifestStaticFilesStorage
总是给我一个哈希的网址?
答案 0 :(得分:2)
您可以覆盖url
的{{1}}方法,以便它始终为您提供带有哈希的网址。
ManifestStaticFilesStorage
答案 1 :(得分:2)
ben432rew的答案很接近,但super
url
来电name
来hashed_name
而不是url
是必不可少的除非您向生成具有该名称的变量的方法添加一些其他代码。此外,您的存储类super
的最后一行从from django.contrib.staticfiles.storage import ManifestStaticFilesStorage
from django.conf import settings
class BigBlindManifestStaticFilesStorage(ManifestStaticFilesStorage):
def url(self, name, force=True):
"""
Override .url to use hashed url in development
"""
return super(ManifestStaticFilesStorage, self).url(name, True)
返回值非常重要:
flexbox
答案 2 :(得分:1)
在Django票证#28847中,给出了ManifestStaticFilesStorage
行为的原因,但它不考虑不是通过runserver
命令而是通过本地进行开发的设置网络服务器实例(例如Apache oder Nginx)。
感谢ben432rew和Niko的回答!