ValueError: 找不到文件<pipeline.storage.PipelineCachedStorage对象>

2024-05-14 13:11:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用django pipelineonDjango 1.6.3编译SASS和压缩CSS文件,但是在访问我的站点后,我得到了以下错误:

ValueError: The file 'css/test2.css' could not be found with <pipeline.storage.PipelineCachedStorage object at 0x0585DF50>.

我按照readthedocs.org的指南配置了管道:我向INSTALLED_APPS添加了管道,然后定义了STATIC_URL和{}:

STATIC_URL = '/test/forum/skins/default/media/'
STATIC_ROOT = '/test/forum/skins/default/media/'

文件夹树:

  • 试验
    • 论坛
      • 皮肤
        • 违约
          • 媒体(静态文件)
            • css
            • js公司
            • 图像
        • 站点1
        • 站点2
        • 站点3
  • 观点
  • 实用工具
  • 在设置.py在

我将SASSCompiler添加到PIPELINE_COMPILERS中,然后添加到要压缩的文件的路径:

^{pr2}$

最后,我将css链接到我的XHTML索引:

{% load compressed %}
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        {% compressed_css 'main' %}
    </head>

我不明白我做错了什么。 谢谢你的帮助!在


更新:

当我运行collectstatic时,这将从django复制文件,而不是从我的项目中复制文件

F:\DEV\DJANGO\apps\test>python manage.py collectstatic

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

    F:\test\forum\skins\default\media

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

Type 'yes' to continue, or 'no' to cancel: yes
Copying 'F:\DEV\DJANGO\apps\django\django\contrib\admin\static\admin\css\base.
css'
Copying 'F:\DEV\DJANGO\apps\django\django\contrib\admin\static\admin\css\chang
elists.css'
Copying 'F:\DEV\DJANGO\apps\django\django\contrib\admin\static\admin\css\dashb
oard.css'
Copying 'F:\DEV\DJANGO\apps\django\django\contrib\admin\static\admin\css\forms
.css'
Copying 'F:\DEV\DJANGO\apps\django\django\contrib\admin\static\admin\css\ie.cs
s'
[etc .... ]

但是路径F:\test\forum\skins\default\media是错误的,我的项目所在地 在F:\DEV\DJANGO\apps\test\forum\skins\default\media中。在

然后我试图找到静态文件:

F:\DEV\DJANGO\apps\test> python manage.py findstatic css/main.css

No matching file found for 'css/main.css'.

但文件存在。在


Tags: apps文件djangodevtestdefaultadminstatic
1条回答
网友
1楼 · 发布于 2024-05-14 13:11:33

在Django的settings.py中,STATIC_ROOT变量告诉Django将静态文件移动到何处,而STATIC_URL是用户将看到的URL路径,您可以从中访问浏览器中的文件。请参阅有关静态文件的Django文档:

https://docs.djangoproject.com/en/dev/ref/settings/#static-files

例如,假设您在设置.py文件:

STATIC_ROOT = "/var/www/example.com/static/"
STATIC_URL = "/static/"

现在,让我们在/home/fuiba/git/your-django-project/内的同一台机器上进行软件开发。在Django项目中有一个名为static的子目录,在该目录中有一个名为custom.css的文件。此文件的完整路径是:

^{pr2}$

现在,在运行python manage.py collectstatic之后,您的样式表将移动到您的STATIC_ROOT目录中。现在启动web服务器,可以通过项目的STATIC_URL访问静态文件。假设您可以在本地浏览器的主机8000上运行样式表:

http://localhost:8000/static/custom.css
这是它如何工作的基础。在您的例子中,您似乎是在Windows下开发的,所以有一些注意事项。首先,不要在路径中使用反斜杠('\'),只使用正斜杠。但是,您仍然必须指定驱动器号和冒号。所以,让我们将STATIC_ROOT设置为:

STATIC_ROOT = "F:/DEV/DJANGO/apps/test-static-root/"

我选择这个选项是为了不污染您的测试项目目录,并且应该在上面的位置创建一个包含静态文件的同级目录。在

告诉我你们相处得如何,我会尽力提供更多细节。在

祝你好运!在

相关问题 更多 >

    热门问题