gpt4 book ai didi

Django-Compressor 抛出 UncompressableFileError

转载 作者:行者123 更新时间:2023-12-03 11:29:59 32 4
gpt4 key购买 nike

我正在使用 django-compressor 和 django-staticfiles(外部版本,我使用的是 Django 1.2)。

当我尝试加载我的网站时,出现错误:

TemplateSyntaxError: Caught UncompressableFileError while rendering: 'css/facebox.css' isn't accesible via COMPRESS_URL ('/static/') and can't be compressed

我已验证 COMPRESS_URL等于 STATIC_URL ,并且该文件实际上可以通过该 URL 访问。

查看 django-compressor 代码,我发现抛出异常的位置:
 def get_basename(self, url):
try:
base_url = self.storage.base_url
except AttributeError:
base_url = settings.COMPRESS_URL
# I added the following print statement:
print "url: %s, base_url: %s" % (url, base_url)
if not url.startswith(base_url):
raise UncompressableFileError("'%s' isn't accesible via "
"COMPRESS_URL ('%s') and can't be "
"compressed" % (url, base_url))

第一 {% compress css %}我的模板中的块是这样的:
{% compress css %}
<link rel="stylesheet" href="/static/css/blueprint/screen.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/facebox.css" />
{% endcompress %}

(请注意,第一个链接不使用 {{ STATIC_URL }} ,但第二个使用)

我在错误日志中得到了这个:
[Thu Oct 13 08:19:13 2011] [error] url: /static/css/blueprint/screen.css, base_url: /static/
[Thu Oct 13 08:19:13 2011] [error] url: /static/css/facebox.css, base_url: /static/
[Thu Oct 13 08:19:14 2011] [error] url: /static/css/blueprint/screen.css, base_url: /static/
[Thu Oct 13 08:19:14 2011] [error] url: css/facebox.css, base_url: /static/

如您所见, screen.css 文件被处理了两次,第二次成功。然而,facebox.css 文件第二次失败,可能是因为 {{ STATIC_URL }}第二次解析文件时未在模板上下文中定义。

显然我可以通过不使用 {{ STATIC_URL }} 来解决这个问题。 ,但这不是可接受的解决方案。

为什么我的 css 文件会被处理两次?他们原来有 media='screen, projection' ,但我删除了认为它是导致问题的原因。

相关设置:
In [4]: from compressor.conf import settings

In [5]: settings.COMPRESS_ROOT
Out[5]: '/home/ianchat/static_files'

In [6]: settings.STATIC_ROOT
Out[6]: '/home/ianchat/static_files'

In [7]: settings.COMPRESS_URL
Out[7]: '/static/'

In [8]: settings.STATIC_URL
Out[8]: '/static/'

In [9]: settings.COMPRESS_OUTPUT_DIR
Out[9]: 'CACHE'

In [10]: settings.COMPRESS_CSS_FILTERS
Out[10]: ['compressor.filters.csstidy.CSSTidyFilter']

In [11]: settings.STATICFILES_FINDERS
Out[11]:
('staticfiles.finders.FileSystemFinder',
'staticfiles.finders.AppDirectoriesFinder',
'staticfiles.finders.LegacyAppDirectoriesFinder',
'compressor.finders.CompressorFinder')

最佳答案

我遇到了同样的问题。

答案在这里找到:https://github.com/jezdez/django_compressor/pull/206
该链接的解决方案是做 handler500。
我决定更改 500.html 模板以避免其中出现任何 {{STATIC_URL}},问题就解决了。

关于Django-Compressor 抛出 UncompressableFileError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754980/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com