【发布时间】:2012-04-13 18:17:56
【问题描述】:
我一直在使用 Django Compressor 来管理我的 coffee/less 文件,它非常适合开发,但我遇到了一些问题,使其无法用于我的生产部署。
我的想法是让 apache 来托管静态文件,可能在另一台服务器上。我在settings.py 文件上设置COMPRESS_OFFLINE = True。
然后我执行以下操作
-
python manage.py compress- 这会填充我的static目录中的CACHE目录,所有静态文件都将收集到该目录中。 -
python manage.py collectstatic- 这会将我项目中所有应用程序(其中一些不使用压缩器)的静态文件收集到我的static目录中。 - 将
static目录复制到某处以使用apache 托管。并设置 apache 来提供文件。 - 修改
settings.py文件中的static_url变量指向静态服务器。
如果我打开任何页面,我的服务器上会出现以下错误,这似乎只发生在我的 settings.py 文件中有 DEBUG = False 和 COMPRESS_OFFLINE = True 时:
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\" />"
}
如果我删除 CACHE 目录并重新运行 python manage.py compress,我会在错误消息和清单文件中获得一组新的 ID,但清单上仍然缺少错误中的 ID。
所以,我想这里有两个问题。为什么它不起作用?实现这一目标的正确方法是什么?
谢谢。
【问题讨论】:
-
你在设置中
STATICFILES_FINDERS有压缩器查找器吗? -
请在您使用
{% compress %}标签的地方显示您的模板代码,这将有助于调试TemplateSyntaxError:)
标签: django apache django-compressor