python 3.7 +Django 3.0 配置静态文件路径并测试

7 篇文章 2 订阅
4 篇文章 0 订阅

新手笔记

查了自强学堂和Django官网,总结了配置静态文件的步骤,并用例子进行了测试。

不一定是最简单的方法,但是亲测可用。

1.settings文件设置(解释在注释里,主要来源为自强学堂的静态文件配置章节)

自强学堂:https://code.ziqiangxuetang.com/django/django-static-files.html

STATIC_URL = '/static/'
# 当运行 python manage.py collectstatic 的时候
# STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来
# 把这些文件放到一起是为了用apache等部署的时候更方便
# STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
# STATIC_ROOT = os.path.join(BASE_DIR, 'static').replace('\\', '/')
STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')
# 文件名为os.path.join(BASE_DIR, "static")中的static
# os.path.join(BASE_DIR, "common_static")
# 把 jquery.js 放在 common_static/js/ 下,这样就可以 在 /static/js/jquery.js 中访问到它!
# 也可以在 settings.py 中指定所有 app 共用的静态文件,比如 jquery.js 等.common_static文件夹
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "common_static"),
    # ('css', os.path.join(STATIC_ROOT, 'css').replace('\\', '/')),
    # ('images', os.path.join(STATIC_ROOT, 'images').replace('\\', '/')),
    # ('font', os.path.join(STATIC_ROOT, 'font').replace('\\', '/')),
)

# 这个是默认设置,Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件
# 注意有先后顺序,找到了就不再继续找了
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder"
)
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates/'),
                 os.path.join(BASE_DIR, 'static').replace('\\', '/')],
        # 修改行'DIRS': []
        # 后面还有代码,没动,就不粘上去了

2.创建common_static文件夹,可以放js等静态文件

(common_static文件夹的作用:可以在 settings.py 中指定所有 app 共用的静态文件,放在common_static文件夹)

对应的setting.py语句:

settings.py 中os.path.join(BASE_DIR, "common_static")

 

3.终端运行:python manage.py collectstatic

作用:部署静态文件,将所有的静态文件归到collect_static文件夹中

(这一句话就会把以前放在app下static中的静态文件全部拷贝到 settings.py 中设置的 STATIC_ROOT 文件夹中)

对应的setting.py语句:

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

 

4.得到下面的目录

我在common_static中放了j s文件,在app的static文件夹中放了jpg文件。

执行了第三步的python manage.py collectstatic语句后,可以看到文件都归纳到了collect_static文件夹中。

5.设置urls文件

在末端添加两句话

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
#设置静态文件路径

6.html中测试(js文件和img文件)

一定要加

{% load static %}
 {% load static %}
<script type="text/javascript" src="{% static 'js/jquery-3.5.1.min.js' %}"></script>
<img src="{% static 'pic/example.jpg' %} ">
 <link rel="stylesheet" href="/static/css/main.css"/>

这样写路径就可以在前端调用静态文件了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值