【发布时间】:2012-04-04 14:07:52
【问题描述】:
压缩css文件的管道配置如下:
PIPELINE_CSS = {
'colors': {
'source_filenames': (
'/static/css/colors/colors.css',
'/static/css/colors/layout.css'
),
'output_filename': '/static/css/Colors.css',
},
}
但是当客户端试图获取时
/static/css/Colors.css 与
{% load compressed %}
{% compressed_css 'colors' %}
它返回 404,未找到。
如果我运行collectstatic,则不会在 STATIC_ROOT 中生成文件(如 /static/css/Colors.css)。
我已经从我的 Ubuntu Lucid 的 Synaptic Repository 安装了 YUI Compressor。
编辑1: 其他的settings.py:
PIPELINE_STORAGE = 'pipeline.storage.PipelineFinderStorage'
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
管道=真
在中间件类中:
'django.middleware.gzip.GZipMiddleware',
'pipeline.middleware.MinifyHTMLMiddleware',
STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', # 'django.contrib.staticfiles.finders.DefaultStorageFinder', )
STATICFILES_DIRS = ( "/home/my/eclipse/myproject/static/", )
STATIC_URL = '/static/'
STATIC_ROOT = '/home/my/eclipse/myproject/static2/'
【问题讨论】:
-
你需要指定文件的相对路径,不是吗?
-
@neoasceetic 我在源文件夹中有静态文件。所以我认为如果我使用相对路径,则找不到文件。
-
为什么会这样?与媒体文件不同,静态文件必须按照定义位于源目录中
-
因为包含python代码的源文件夹是私有的,但是js和css文件是公开的,所以我必须区分这个事实。
-
为什么不复制/链接这些文件?
标签: css django compression settings http-status-code-404