Django静态文件(css)不工作

6l7fqoea  于 2023-01-06  发布在  Go
关注(0)|答案(6)|浏览(144)

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

      • Django 1.9.2**

在阅读了official Django explanation对"静态文件"管理,我绝对是零聪明:(.这里是我的项目文件夹层次结构:

/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">

没有。这是我的设置文件:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILE_DIRS ='/users/edchigliak/documents/projects/projectname/appname/static/'

据我所知,有可能有一个"全局"的"静态文件位置",你的所有项目都可以使用,和"每个应用程序"的"静态文件位置",它只能由应用程序使用,其中的基础目录,他们驻留。
任何帮助感激不尽!

    • 编辑:**

这是我的urls.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),
]
rn0zuynd

rn0zuynd1#

我也有类似的问题(Django 1.10)。

myapp
   ...
   myapp
      ...
   blog
      migrations
      templates
      ...
   static
      blog
         style.css

因此,如果我添加<link href="{% static 'blog/css/bootstrap.min.css' %}" rel="stylesheet">style.css位于目录'blog/css'中),所有样式都将不起作用。
但当我删除'css':<link href="{% static 'blog/bootstrap.min.css' %}" rel="stylesheet">style.css位于目录“博客”中)没问题。
也许它能帮到你!

jtoj6r0c

jtoj6r0c2#

我认为您需要添加以下到您的网址:

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文档,您的应用程序结构正常。
当你要设置你的prod并通过Apache/Nginx/etc启动serverstatic时,你需要运行collectstatic,现在还不需要。

btxsgosb

btxsgosb3#

我的快速猜测是您是上一级的。您的static目录嵌套在appname下。尝试将其上移一级并直接在浏览器中访问资源(http://example.com/static/appname/css/bootstrap.min.css
我从来没有做过应用程序特定的资源,所以如果这是我的目标,我道歉。

flvlnr44

flvlnr444#

如果静态链接仅以appname开头会怎样?
即,代替

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

请试试看

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

AFAIK,{% static %}中的字符串是静态文件夹中静态文件的路径。
我没有足够的观点来评论,所以我把我的猜测留在这里。

drkbr07n

drkbr07n5#

STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)
zte4gxcn

zte4gxcn6#

你需要把这一行放在HTML标记的外面。

{% load static %}

我在这里找到了答案:https://tutorial.djangogirls.org/en/css/.

相关问题