django-关于静态文件

本文详细介绍Django项目中如何配置静态文件,包括css、js和图片等,并提供了具体步骤和命令,帮助初学者理解并正确设置静态资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

在开发中通常会使用到css,js,img等静态文件,关于django如何处理以及配置还是比较纠结,其实官网中有给出详细说明,只是刚入门者容易混,这里记录下配置流程。

配置

1.setting.py先配置

在settings.py中配置静态文件位置,直接给出配置代码:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "core/static"),
]
说明:


  • STATIC_URL:

配置url地址,当我们要访问静态文件时url地址,这里只是做其中一部分path,结合urlconf会详细说明;
  • STATIC_ROOT:
    配置静态文件存放目录,如上代码所示即在工程的static目录下存放这些文件;
  • STATICFILES_DIRS:
    可能我们工程下会有多个app,或者还会牵涉到其它的静态资源文件目录,STATICFILES_DIRS就是列出一些文件目录,如,在app core下static目录,此目录下存放的就是只与该app相关的资源文件;

2.配置url

在urls.py下:

urlpatterns = [
    path('', views.home),
    path('list/', views.blog_list, name='blog_list'),
    path('cal/', views.add, name='cal'),
    url(r'^example/(?P<name>[A-Za-z]+)/$', views.example, name="example")
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

3.验证

分别在工程static以及app core的static目录下放文件hello.txt, index.txt

访问结果:
- http://localhost:8000/static/hello.txt 可正常访问;
- http://localhost:8000/static/index.txt 访问不了;

==为什么会这样呐?==

这是因为虽然在STATICFILES_DIRS下配置了app的静态目录,但实际上看url配置就知道访问还是工程目录下的static,这里需要执行下命令:

python manage.py collectstatic

该命令的作用就是copy STATICFILES_DIRS 所声明目录下的文件到static下;至此静态文件配置就可正常工作了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值