gpt4 book ai didi

python - ValueError : The file could not be found with

转载 作者:行者123 更新时间:2023-12-02 08:37:13 26 4
gpt4 key购买 nike

我正在尝试使用 django pipeline 编译 SASS 并压缩 CSS 文件在 Django 1.6.3 上,但在访问我的网站后出现以下错误:

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

我按照 readthedocs.org 上的指南配置了管道:我将管道添加到 INSTALLED_APPS,然后定义 STATIC_URLSTATIC_ROOT:

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

文件夹树:

  • 测试
    • 论坛
      • 皮肤
        • 默认
          • 媒体(静态文件)
            • CSS
            • js
            • 图片
        • 站点1
        • 网站2
        • 站点3
  • 观看次数
  • 实用程序
  • 设置.py

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

# pipeline settings
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'
PIPELINE_COMPILERS = (
'pipeline.compilers.sass.SASSCompiler',
)
PIPELINE_CSS = {
'main': {
'source_filenames': (
'css/test.scss',
),
'output_filename': 'css/test2.css',
},
}

最后我将 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'.

但是该文件存在。

最佳答案

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

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

例如,假设您的 settings.py 文件中有以下内容:

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

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

`/home/fuiba/git/your-django-project/static/custom.css`

现在,运行 python manage.pycollectstatic 后,您的样式表将移动到您的 STATIC_ROOT 目录。现在启动 Web 服务器,您可以通过项目的 STATIC_URL 访问静态文件。因此,假设您在本地主机的端口 8000 上运行 Web 服务器,您可以从浏览器的以下位置访问样式表:

http://localhost:8000/static/custom.css

好的,这就是它工作原理的基础。就您而言,您似乎是在 Windows 下进行开发,因此有一些注意事项。首先,不要在路径中使用反斜杠('\'),仅使用正斜杠。但是,您仍然必须指定驱动器号和冒号。因此,让我们将您的 STATIC_ROOT 设置为:

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

我选择此选项是为了不污染测试项目目录,并且应在上述位置创建一个同级目录,其中包含静态文件。

让我知道你们相处得怎么样,我会尽力提供更多细节。

祝你好运!

关于python - ValueError : The file could not be found with <pipeline. storage.PipelineCachedStorage 对象>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23310198/

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