Django 不提供静态文件

时间:2021-04-13 13:37:06

标签: django django-staticfiles django-static

我想使用 django 静态文件,但不幸的是我无法将其用于本地图像。

这是我目前所做的:

settings.py:

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

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)

当我执行 print(os.path.join(BASE_DIR, 'staticfiles')) 时,我看到了正确的本地路径。

urls.py:

from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path
import content.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', content.views.index, name='index'),
    path('/about', content.views.about, name='about'),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

模板:

{% load static %}
...
{% static "css/master.css" %}

决定

/static/css/master.css

[编辑] URL PATTERN 看起来像这样

Using the URLconf defined in website.urls, Django tried these URL      
patterns, in this order:
admin/
[name='index']
/about [name='about']
^static/(?P<path>.*)$

直接打开一个文件会变成 404-django-page。

之后,我成功运行了./manage.py collectstatic。

我正在使用 Django 开发服务器,例如./manage.py 运行服务器...

我可能遗漏了什么,只需要一双眼睛。谢谢。

1 个答案:

答案 0 :(得分:0)

通过删除来解决

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

并将其替换为

STATICFILES_DIRS = (os.path.join(BASE_DIR, "staticfiles"),)