这个问题似乎是众所周知的,然而,大多数是陈旧的Q& A并且他们没有解决我的问题。
我正在使用Django 2.0.2,当我的简单网页没有呈现我的bootstrap.css文件时,因为它根本找不到它。
这是我的文件结构:
myproject/
|-- myproject/
| |-- boards/
| |-- myproject/
| |-- templates/
| |-- static/
| | +-- css/
| | +-- bootstrap.min.css <-- here
| +-- manage.py
这是我在settings.py
文件中定义的静态变量。
STATIC_URL = '/static/'
STATICFILES_DIR = [
os.path.join(BASE_DIR, 'static'),
]
这是我的home.html
文件,下半部分是为了简洁起见。
{% load static %}<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Boards</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
</head>
<body>
<h1>Boards</h1>
我将调试设置为true,当我运行服务器并加载它时,我会看到以下内容:[08/Feb/2018 19:26:02] "GET /static/css/bootstrap.css HTTP/1.1" 404 1675
我也无法访问此网址,因为它也说明了404错误:http://127.0.0.1:8000/static/css/bootstrap.min.css
。
我不确定为什么当我在上面的文件中明确说明时,Django找不到.css文件。没有其他StackOverflow问题/答案对我有帮助。
接受建议;非常感谢任何帮助。
答案 0 :(得分:4)
STATICFILES_DIRS
设置,错过了&#39; S&#39;
在您的Django app目录中创建一个子目录static
,然后在该目录中创建另一个名称与Django应用程序名称相同的子目录。然后将css
目录移动到最新提到的目录中。
所以,像这样:
- your_django_app
-- static
--- your_django_app
---- css
----- bootstrap.min.css
然后您就可以在这样的模板中使用:
<link rel="stylesheet" href="{% static 'your_django_app/css/bootstrap.min.css' %}">
答案 1 :(得分:0)
你需要&#34; STATICFILES_DIR&#34;在你的情况下变量?它指向同一个地方,所以它是多余的,直到你在像我认为的nginx或Apache这样的东西上运行它,让它们服务于静态文件。
你身上是django.contrib.staticfiles&#34; INSTALLED_APPS&#34;您的设置文件中的变量?
答案 2 :(得分:0)
根据@ bonidjkic的评论:I believe that you misspelled the STATICFILES_DIRS setting (you're missing an 'S')
,这就是问题所在。
非常感谢你,我对如何错过这一点感到非常愚蠢。
答案 3 :(得分:0)
在setting.py文件上,尝试使用以下语法:
STATICFILES_DIRS = [ os.path.join(BASE_DIR,“静态”), '/ Var / www / static /', ]