Django 管道找不到静态 css 文件

标签 django django-staticfiles django-pipeline

我已经配置了 django-pipeline压缩js和css。虽然 js 可以工作,但它无法找到 css 文件。

可以使用 findstatic 找到这些文件命令。我现在只用一个文件来测试它,它有一个 css 规则。这是我的配置

PIPELINE_CSS = {
    'all_css': {
        'source_filenames': (
            'css/test.css'
        )
    },
    'output_filename': 'css/main.css'
}

PIPELINE = True
PIPELINE_CSS_COMPRESSOR = None

和错误信息 -
% ./manage.py collectstatic --traceback                                                          

You have requested to collect static files at the destination
location as specified in your settings.

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes
Copying '/Users/apoorvparijat/Documents/Work_Related/programming/my_projects/analytics_app/devel/stable/static/css/test.css'
Traceback (most recent call last):
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 255, in execute
output = self.handle(*args, **options)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/core/management/base.py", line 385, in handle
return self.handle_noargs(**options)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 164, in handle_noargs
collected = self.collect()
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 120, in collect
dry_run=self.dry_run)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/storage.py", line 28, in post_process
packager.pack_stylesheets(package)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 94, in pack_stylesheets
variant=package.variant, **kwargs)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 103, in pack
paths = self.compile(package.paths, force=True)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 34, in paths
return [path for path in self.sources
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/packager.py", line 26, in sources
for path in glob(pattern):
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/glob.py", line 18, in glob
return sorted(list(iglob(pathname)))
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/glob.py", line 29, in iglob
if default_storage.exists(pathname):
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/pipeline/storage.py", line 89, in exists
exists = self.finders.find(name) is not None
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 239, in find
result = finder.find(path, all=all)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 79, in find
matched_path = self.find_location(root, path, prefix)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 96, in find_location
path = safe_join(root, path)
File "/Users/apoorvparijat/.virtualenvs/stable/lib/python2.7/site-packages/django/utils/_os.py", line 77, in safe_join
'path component (%s)' % (final_path, base_path))
ValueError: The joined path (/) is located outside of the base path component (/Users/apoorvparijat/Documents/Work_Related/programming/my_projects/analytics_app/devel/stable/static)

最佳答案

你少了一个逗号。

'source_filenames': (
    'css/test.css'   # add a comma here
)

如果你有一个只有一个元素的元组,你需要在末尾添加一个逗号,否则 Python 会认为它是一个表达式而不是元组。

关于Django 管道找不到静态 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571857/

相关文章:

javascript - 使用 Ajax 传递一个 dict of dict

django - 通过html链接删除Django中的对象

javascript - 如何防止 django-pipeline 中 javascript 函数的名称修改

Django 自定义用户模型最佳实践 : User = get_user_model()?

javascript - 如何在 Django 应用程序上使用静态 Javascript 播放静态 mp3 文件?

javascript - Selenium 保留缓存吗?为什么我的 javascript 没有在测试中加载?

Django 加载 ES6 javascript 文件

python - 如何使 django-storage 和 django-pipeline 协同工作

python - Django Pipeline 生成空文件

django:修改/扩展 3rd 方应用程序