Django开发,静态文件未找到
目录结构如下:
请各位看看,问题出在哪,是setting配置没找到资源文件路径,还是html里引用的不对,麻烦各位了!
urls里面怎么映射的?
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = [
# 其他URL模式...
]
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
问题:在利用 Nginx+uwsgi
部署Django项目之后,发现 admin
模块的CSS样式、JS等文件访问全部404,丢失找不到原始资源。
让我调试大神告诉你,引用css时候static前面加个/就行啦
Django 找不到静态资源解决方法
之前遇到是这么处理的
1.首先你需要在自己的app下面创建2个目录 static 和 templates
static下存放静态文件,templates下存放网页模板文件
2.修改setting.py
找到 STATIC_URL = '/static/' 在后面追加一行,然后保存
STATIC_ROOT = os.path. join (BASE_DIR, 'static' )
最后保存好的样子是这样的(红色部分为修改的):
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = os.path. join (BASE_DIR, 'static' )
3.修改 urls.py
在urls.py中导入2个库
from django.conf import settings
from django.conf.urls. static import static
并在结尾追加
+ static (settings.STATIC_URL, document_root = settings.STATIC_ROOT)
最后保存好是这个样子的(红色部分为修改的):
from django.conf.urls import url
from django.contrib import adminform blogs import views as blogs_views
from django.conf import settings
from django.conf.urls. static import static
urlpatterns = [
url(r '^admin/' , admin.site.urls), url(r '^$' , blogs_views.index),
] + static (settings.STATIC_URL, document_root = settings.STATIC_ROOT)
4.重新运行你的项目
切记静态文件全都放在 static下面,网页模板文件全都放在 templates下面
最后网页里引用
<link rel= "stylesheet" href= "/static/style.css" >
直接写/static/下的文件,就可以引用了!
问题点: html里引用的不对,引用的资源和执行文件不在一个目录下.
解决办法: 在引用css样式的部分代码中,static前添加/(作用:从上一层目录来查找文件),link href后面的内容给的是相对路径.
settings.py做一些改变:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
STATIC_URL = '/static/'
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]
路径格式不对,导致访问不到
就是html里引用的问题,上面那位胡说八道一通。django里面静态文件使用一般就是这样
{% load static %}
<link rel="stylesheet" href="{% static '路径' %}">