Python Django静态文件(css)不工作

Python Django静态文件(css)不工作,python,css,django,Python,Css,Django,由于某些原因,我似乎无法包含我的引导css文件。我对Python和Django尤其陌生,所以我肯定做错了什么 Django 1.9.2 在阅读了关于“静态文件”管理的文章后,我完全变聪明了:(。以下是我的项目文件夹层次结构: /projectname/ /appname/ /static/ | /appname/ | /css/ | | bootstrap.min.css

由于某些原因,我似乎无法包含我的引导css文件。我对Python和Django尤其陌生,所以我肯定做错了什么

  • Django 1.9.2
在阅读了关于“静态文件”管理的文章后,我完全变聪明了:(。以下是我的项目文件夹层次结构:

/projectname/
    /appname/
        /static/
        |   /appname/
        |        /css/
        |        |    bootstrap.min.css
        |        |    custom.css
        |        /img/
        |        /js/
        |
        /templates/
            /includes/
                head.html
                footer.html
            index.html
            base.html
我从基础开始,所以我忽略了
head.html
,尝试了
base.html
,如下所示:

<title>{% block title %}{% endblock %}</title>

<!-- Bootstrap core CSS -->
{% load staticfiles %}
<link href="{% static 'static/appname/css/bootstrap.min.css' %}" rel="stylesheet">
据我所知,可以有一个“全局”的“静态文件位置”,所有项目都可以使用,还有“每个应用程序”的“静态文件位置”,它们只能由它们所在的基本目录中的应用程序使用

感谢您的帮助

编辑:

这是我的
url.py
配置:

from django.conf.urls import url
from django.contrib import admin
from budgeteer.views import hello, hours_ahead, current_datetime

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
url(r'^index/$', current_datetime),
url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]

我的快速猜测是,您的
static
目录嵌套在
appname
下。请尝试将其向上移动一个级别,并直接在浏览器中访问资源()


我从未使用过特定于应用程序的资源,因此如果这是我的目标,我很抱歉。

我认为您需要在URL中添加以下内容:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
除非您在Django服务器上工作,并且它为您的静态文件提供服务

根据你的Django文档,你的应用程序结构还可以

当您将通过Apache/Nginx/etc设置prod并启动servestatic时,您将需要运行collectstatic。
现在不需要了。

如果您的静态链接仅以
appname
开头,该怎么办

i、 而不是

<link href="{% static 'static/appname/css/bootstrap.min.css' %}" rel="stylesheet">

请试一试

<link href="{% static 'appname/css/bootstrap.min.css' %}" rel="stylesheet">

好的,
{%static%}
中的字符串是静态文件夹中静态文件的路径

我没有足够的观点来评论,所以我把我的猜测留在这里。

我也有类似的问题(Django 1.10)。层次结构:

myapp
   ...
   myapp
      ...
   blog
      migrations
      templates
      ...
   static
      blog
         style.css
因此,如果我添加
style.css
位于dir'blog/css)中,所有样式都不会工作

但是当我删除“css”时:
style.css
位于dir'blog')就可以了


可能对您有帮助!

您需要将这一行放在HTML标记的外部

{% load static %}

我在这里找到了答案:。

在“static/appname/css/bootstrap.min.css”中删除static(或者static/appname,我不是100%确定)如果您没有处于调试模式,您可能必须从manage.pyAh运行collectstatic,您知道,我读过关于
collectstatic
的文章,但我讨厌做一些我不理解的事情。是不是这个命令从我定义的位置获取文件并将它们放在其他位置(副本)然后将它们包含在模板中?这有点让人困惑……我认为django doc在应用程序中使用静态目录是正常的:“现在我们可以将静态文件直接放在my_app/static/(而不是创建另一个my_app子目录)中,但这实际上是个坏主意。”我正在使用Django附带的本地轻量级服务器,只是想了解一下情况:)。斯帕西巴·布尔肖!没有,不幸的是,仍然没有工作。以下是我运行服务器时从终端得到的信息:[10/Mar/2016 08:14:37]“get/index/HTTP/1.1”200 4872未找到:/index/js/ie-emulation-modes-warning.js未找到:*/index/**css/ie10-viewport-bug-workaround.css未找到:/index/css/jumbotron.css。。。未找到:/dist/js/bootstrap.min.js未找到:/assets/js/ie10-viewport-bug-workaround.js…
{% load static %}