如何使用django压缩器与apache?

Jua*_*hin 5 apache django django-compressor

我一直在使用Django Compressor来管理我的咖啡/少文件,它非常适合开发,但是我有一些问题要让它适用于我的生产部署.

我的想法是让apache托管静态文件,可能在另一台服务器上.我设置COMPRESS_OFFLINE = Truesettings.py文件.

然后我做以下事情

  • python manage.py compress- 这将填充CACHE我的目录中的static目录,其中将收集所有静态文件.
  • python manage.py collectstatic- 这会将我项目中所有应用程序(其中一些不使用压缩程序)的静态文件收集到我的static目录中.
  • static目录复制到apache托管的某个地方.并设置apache来提供文件.
  • 修改文件中的static_url变量settings.py以指向静态服务器.

如果我打开任何页面,我在服务器上收到以下错误,这似乎只发生在我DEBUG = FalseCOMPRESS_OFFLINE = True我的settings.py文件上:

TemplateSyntaxError:夹缝OfflineGenerationError同时呈现:您已启用脱机压缩,但关键"777ba26736d046ab043dc151e7e9a060"从离线清单丢失.您可能需要运行"python manage.py compress".

当我检查static/CACHE目录时,我确认错误是什么,这是我的manifest.json文件:

{
  "6189b8598993d1cbdbd35d4dfd1a6711": "<script type=\"text/javascript\" src=\"http://192.168.1.123/CACHE/js/2f6ca6616bd6.js\"></script>",
  "5c66dbed0e5b766c6e32773cd8585f3c": "<link rel=\"stylesheet\" href=\"http://192.168.1.123/CACHE/css/154d95903951.css\" type=\"text/css\" />"
}
Run Code Online (Sandbox Code Playgroud)

如果我删除CACHE目录并重新运行python manage.py compress,我会在错误消息和清单文件上获得一组新ID,但清单上仍然缺少错误ID.

所以,我想这里有两个问题.为什么不起作用?实现这个目标的正确方法是什么?

谢谢.

小智 15

如果你运行压缩,你仍然会收到消息

OfflineGenerationError:您已启用脱机压缩,但脱机清单中缺少密钥"4971a40e3b459a8cda8287a7f7caa96d".您可能需要运行"python manage.py compress"

那么你可能在压缩标签中有动态内容.确保compress始终是最里面的块,并且压缩块内没有标记.