问题描述
我想使用 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>.*)$
之后,我成功运行了./manage.py collectstatic。
我正在使用 Django 开发服务器,例如./manage.py 运行服务器...
我可能遗漏了什么,只需要一双眼睛。谢谢。
解决方法
通过删除来解决
STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')
并将其替换为
STATICFILES_DIRS = (os.path.join(BASE_DIR,"staticfiles"),)