所有
我正在使用django-compressor,它适用于我的开发环境(纯Django),但不适用于我的生产环境(Apache下的Django,由WebFaction托管)。以下是相关细节:
settings.py:
STATIC_ROOT = "/path/to/my/static/files/"
STATIC_URL = '/static/'
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_ROOT = STATIC_ROOT + "my_app_name/"
COMPRESS_PRECOMPILERS = (
('text/less', 'lessc {infile} {outfile}'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
some_template.html:
{% load staticfiles %}
{% load compress %}
<html>
<head>
{% compress css %}
<link rel="stylesheet" type="text/less" media="all" href="{% static 'my_app/less/my_app.less' %}" />
{% endcompress %}
</head>
<body>
<div class="my_class">hello world</div>
</body>
</html>
我运行python manage.py compress && python manage.py collectstatic
以确保&#34; my_app.less&#34;上面的文件被正确编译,压缩和复制。
正如我所说,在我的开发环境中,这很好用。服务器调用&#34; // localhost:8000 / static / CACHE / css / 1d4e9429eac4.css&#34;并在&#34; /path/to/my/static/files/my_app_name/CACHE/css/1d4e9429eac4.css"中返回文件。
但在制作中,同一个网址&#34; // my.domain.com/static/CACHE/css/1d4e9429eac4.css"返回404 Not Found错误。该文件存在于本地的&#34; /path/to/my/static/files/my_app_name/CACHE/css/1d4e9429eac4.css"。
我注意到,如果我手动转到&#34; // my.domain.com/static/my_app_name/CACHE/css/1d4e9429eac4.css" (注意添加&#34; my_app_name&#34;)然后找到文件。
我的问题是,为什么它在两台服务器上的表现不同?哪种行为正确?我怎样才能确保压缩在两种情况下均有效?
感谢。