我有一个仅使用WhiteNoise就能很好地处理静态文件和jQuery的应用程序。
但是,我试图添加压缩和缓存支持,但遇到了一些问题。
正如他们的documentation中所述,我添加了:
#settings.py
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
然后我运行python manage.py collectstatic
,它会创建许多gzip压缩文件。
最后,当我将其推送到Heroku时,某些Javascript代码不再起作用,并且控制台显示诸如以下错误:
Uncaught
ReferenceError: $ is not defined
还有这个:
Uncaught
ReferenceError: jQuery is not defined
仅当我在本地环境中使用python manage.py runserver
推送到Heroku时,才会发生这些错误。
我尝试了legacy documentation的建议:
问题排查
如果您在使用WhiteNoise存储时遇到问题 后端,可能是由于底层Django存储 发动机。这是因为WhiteNoise仅在周围添加了一个薄包装纸 Django的存储区以添加gzip支持,并且因为gzip代码是 非常简单,通常不会引起问题。
要测试问题是否归因于WhiteNoise,请尝试 将WhiteNoise存储后端交换为Django。如果你是 运行Django 1.7或更高版本,请尝试:
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
并且错误仍然存在,因此据此,错误在Django中。
有什么问题的想法吗?