django - 如何将 django-compressor 与 apache 一起使用?

标签 django apache django-compressor

我一直在使用 Django Compressor 来管理我的 Coffee/less 文件,它非常适合开发,但在使其适用于我的生产部署时遇到了一些问题。

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

然后我执行以下操作

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

如果我打开任何页面,我的服务器上会出现以下错误,这似乎只在我有 DEBUG = False 时才会发生。和COMPRESS_OFFLINE = True在我的settings.py上文件:

TemplateSyntaxError: Caught OfflineGenerationError while rendering: You have offline compression enabled but key "777ba26736d046ab043dc151e7e9a060" is missing from offline manifest. You may need to run "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\" />"
}

如果我删除 CACHE 目录并重新运行 python manage.py compress ,我在错误消息和 list 文件中都收到了一组新的 ID,但 list 文件中仍然缺少错误的 ID。

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

谢谢。

最佳答案

如果您已运行压缩,但仍然收到消息

OfflineGenerationError: You have offline compression enabled but key "4971a40e3b459a8cda8287a7f7caa96d" is missing from offline manifest. You may need to run "python manage.py compress"

那么压缩标签内可能有动态内容。确保 compress 始终是最里面的 block ,并且 compress block 内没有标签。

关于django - 如何将 django-compressor 与 apache 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10146170/

相关文章:

javascript - 模板未在 Django 提供的 Vue 中呈现

Django MongoDB SITE_ID 错误

php - 为什么我的 $_ENV 是空的?

Apache Bench - 如何强制 PUT、DELETE 和 POST 方法

django-compressor,heroku,s3 : Request has expired

python - 使用 gzip 服务 javascript 的 Django 压缩器

django - CELERY_ALWAYS_EAGER 好像没有效果

python - 在 Python Django 中导出到 SPSS 文件?

windows - 如何在 Windows 服务器上安装 mod_jk(Apache Tomcat 连接器)?

Django 压缩机不使用设置中的 STATICFILES_FINDER