Django开发静态文件未找到

Django开发,静态文件未找到
目录结构如下:

img


pckpi为应用名,在根目录和应用目录都建有static静态文件目录,目录下有css等资源子目录,应用目录下也有static静态文件目录,和根目录一样(因为实在找不到问题在哪所以根目录和应用目录都放了静态资源文件)

img


这是引用css样式的部分代码

img


这是setting的配置信息

img

请各位看看,问题出在哪,是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)
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7795537
  • 除此之外, 这篇博客: Django :上线CSS样式丢失处理中的 遇到后,在查找了几个网站后,下面方法解决了我的问题: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

  • 问题:在利用 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 '路径' %}">