django-pipeline DEBUG=True,未找到压缩文件
django-pipeline DEBUG=True, compressed file not found
好的。我使用 django-pipeline 快疯了,我离完全不使用它只有一步之遥。
我还没有生产。以下所有内容都发生在开发 (DEBUG=True
) 模式中。我的 css 静态文件位于一个名为 'project/static/css' 的目录中,我将它们收集在一个名为 'project/static_remote/css' 的目录中(在我自己的开发服务器中)。
我设置了以下内容:
import os
from os.path import abspath, dirname, join
# PATH CONFIGURATION
here = lambda *x: join(abspath(dirname(__file__)), *x)
PROJECT_ROOT = here("..", "..")
root = lambda *x: join(abspath(PROJECT_ROOT), *x)
# STATIC FILES CONFIGURATION
STATIC_ROOT = root('static_remote')
STATIC_URL = '/static/'
STATICFILES_DIRS = (root('static'), )
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.PipelineFinder',
)
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
# PIPELINE CONFIGURATION
PIPELINE_ENABLED = True
PIPELINE_CSS = {
'master': {
'source_filenames': (
'css/fonts.css',
'css/animate.css',
'css/style.css',
'css/responsive.css',
),
'output_filename': 'css/master.css',
},
}
当我 运行 collectstatic
一切顺利并且 master
分支中的所有文件(加上压缩文件 master.css
)都成功复制到 'project/static_remote/css'。到此为止!
但是,当我 runserver
时,我的模板中的 {% static 'master' %}
(href='/static/css/master.css'
) 找不到我的压缩文件(显然我有 {% load pipeline %}
)。如果我 运行 findstatic 'css/master.css'
,同样适用。为什么会这样?
findstatic
.
找到所有其他文件 (fonts.css animate.css etc
)
我怀疑这是因为 'project/static/css' 里面没有 master.css
的副本。或者这是因为我有 DEBUG = True
?
如果我手动将 'master.css' 从 'project/static_remote/css' 复制到 'project/static/css' 那么一切正常,但我不希望那样。有什么建议吗?
当 DEBUG = True
好的。我使用 django-pipeline 快疯了,我离完全不使用它只有一步之遥。
我还没有生产。以下所有内容都发生在开发 (DEBUG=True
) 模式中。我的 css 静态文件位于一个名为 'project/static/css' 的目录中,我将它们收集在一个名为 'project/static_remote/css' 的目录中(在我自己的开发服务器中)。
我设置了以下内容:
import os
from os.path import abspath, dirname, join
# PATH CONFIGURATION
here = lambda *x: join(abspath(dirname(__file__)), *x)
PROJECT_ROOT = here("..", "..")
root = lambda *x: join(abspath(PROJECT_ROOT), *x)
# STATIC FILES CONFIGURATION
STATIC_ROOT = root('static_remote')
STATIC_URL = '/static/'
STATICFILES_DIRS = (root('static'), )
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'pipeline.finders.PipelineFinder',
)
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
# PIPELINE CONFIGURATION
PIPELINE_ENABLED = True
PIPELINE_CSS = {
'master': {
'source_filenames': (
'css/fonts.css',
'css/animate.css',
'css/style.css',
'css/responsive.css',
),
'output_filename': 'css/master.css',
},
}
当我 运行 collectstatic
一切顺利并且 master
分支中的所有文件(加上压缩文件 master.css
)都成功复制到 'project/static_remote/css'。到此为止!
但是,当我 runserver
时,我的模板中的 {% static 'master' %}
(href='/static/css/master.css'
) 找不到我的压缩文件(显然我有 {% load pipeline %}
)。如果我 运行 findstatic 'css/master.css'
,同样适用。为什么会这样?
findstatic
.
fonts.css animate.css etc
)
我怀疑这是因为 'project/static/css' 里面没有 master.css
的副本。或者这是因为我有 DEBUG = True
?
如果我手动将 'master.css' 从 'project/static_remote/css' 复制到 'project/static/css' 那么一切正常,但我不希望那样。有什么建议吗?
当 DEBUG = True