Django在本地提供静态文件

Sam*_* M. 3 django

自从我将django设置为在本地工作以来已经有一段时间了。我正在使用version 1.11。获取它来提供静态文件。调用了我的项目chatsys,并在此文件夹中创建了静态文件夹和CSS chatsys\static\css\style.css

这是设置文件中的当前设置。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Run Code Online (Sandbox Code Playgroud)

并在网址中

#for serving static files
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Run Code Online (Sandbox Code Playgroud)

最后在html中

{% load static %}
...
<link rel="stylesheet" type="text/css" href="/static/css/style.css">
Run Code Online (Sandbox Code Playgroud)

但是在运行服务器控制台中,我得到404 /static/css/style.css

Ala*_*air 5

您应该在其中定义STATICFILES_DIRS并包括项目的静态目录。

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
Run Code Online (Sandbox Code Playgroud)

这些是Django从中收集静态文件的目录。

然后,您应该更改STATIC_ROOT为其他目录。它是将collectstatic静态文件收集到的目录。静态根目录不应受版本控制。

顺便说一句,您正在将静态标签加载到模板中,但未使用它。您可以将其更改为:

{% load static %}
...
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
Run Code Online (Sandbox Code Playgroud)