django加载css文件和图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21182587/article/details/69936510

这两天被django折磨的快崩溃了。。。要做一个网页,结果CSS 和图片总是加载不出来。。。。官方文档中教了一部分,上网看乐各种教程都不行,研究了好几个小时,东拼西凑各个地方学一点,终于弄出来了,赶紧记录下来。

django用的静态文件路径:STATICFILES_DIRS部署的方式,文件路径一定要设置好。
注: python2.7 django1.10.6; 项目mysite,项目下有一个应用myapp

一、目录结构:
整个目录结构是这样的:

| mysite
| —— manage.py
| —— mysite
| —— | —— settings
| —— | ——…(urls等)
| —— templates
| —— myapp
| —— …(views等)
| —— | —— templates
| —— | —— | —— myapp
| —— | —— | —— | —— home.html
| —— | —— | —— | —— static
| —— | —— | —— | —— | —— css
| —— | —— | —— | —— | —— images

注意,文件夹结构比较复杂。
在项目文件夹下有一个templates文件夹,不过这个文件夹暂时没什么用,可以不用管(我也不知道为什么要有这么个文件夹)。
应用文件夹结构是这样的:

“myapp/templates/myapp/home.html”;
“myapp/templates/myapp/static/images”;
“myapp/templates/myapp/static/CSS”;

二、设置templates和静态路径

  • 在settings.py中设置templates路径
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'myapp/templates').replace('\\', '/'),
                 os.path.join(BASE_DIR, 'templates').replace('\\', '/')],
     }
]
  • 在settings.py文件的最后加上以下内容:
STATIC_ROOT = os.path.join(BASE_DIR, 'myapp/templates/myapp/static').replace('\\', '/')
STATICFILES_DIRS = (
    ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
)

三、修改urls.py文件
在urls.py开头加上一句:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

在urls.py的最后加上以下内容:

#设置静态文件路径
urlpatterns += staticfiles_urlpatterns()

四、修改html文件
home.html文件相关内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <link href="/static/css/style.css" rel="stylesheet" type="text/css" />
    <title>Home</title>
</head>
<body>
    <a href="https://www.baidu.com/>
        <img src="/static/images/logo.png" alt="logo"/>
    </a>
</body>
</html>

改成自己的图片名称,注意图片和link的前缀:/static/images/ 别写成 static/images/ ,这样会无法显示。

感觉自己底子真的太差,这几天一点一点看官方文档感到非常吃力,很多地方都不懂,想直接看自己需要的部分又不知道该看哪。

为了学这个我已经好几天没好好看书了,最近大家都在看《人民的名义》,我也好想看,可是时间不允许。

加油吧少女。

猜你喜欢

转载自blog.csdn.net/qq_21182587/article/details/69936510
今日推荐