Django管道 - 运行collectstatic后如何提供静态文件?

时间:2015-03-14 19:24:52

标签: python django static django-pipeline collectstatic

我的项目结构

|- myProject
    |- manage.py
    |- myProject
        |- settings.py
        |- static // This is my STATIC_ROOT
    |- myApp
        |- static // This is where I edit and save my static files

所以我运行了collectstatic命令。我的css / js文件被收集(并压缩成一个文件)到STATIC_ROOT目录(myProject / myProject / static)中。到目前为止一切都很好。

第一个问题:我如何为他们服务?

我尝试调用http://127.0.0.1:8000/static/css/styles.css,但它返回404文件未找到错误。

我尝试在STATICFILES_DIRS中添加STATIC_ROOT,但后来我收到了错误:

  

STATICFILES_DIRS设置不应包含STATIC_ROOT   设置。

第二个问题:Django可以提供“项目范围”的静态文件吗?

我知道您可以通过调用“/static/myApp/my-static-file.css”来提供“应用程序范围”的静态文件。 但Django是否了解 myProject / myProject / static 它对每个应用程序中静态文件夹的了解方式?或者你需要明确说明什么?

我已经阅读了一些博客/论坛帖子,说你需要更改urls.py但我尝试过,但没有成功。我需要吗?

我发现很难在Django的文档中找到有关静态文件的信息,而且我现在很困惑。


编辑:现在我真的很困惑:我尝试设置PIPELINE_ENABLED = False,现在这个网址有效。 http://127.0.0.1:8000/static/css/styles.css但它没有帮助,因为当PIPElINE_ENABLED为False时,它不会尝试分别调用压缩的css,而是所有文件。

1 个答案:

答案 0 :(得分:0)

我需要设置DEBUG = True和PRODUCTION = False才能将其提供给静态文件。只是DEBUG = True不会这样做。