解决 Django 多个 APP 时 static 文件的问题 Django 项目中,如果有多个 APP,每个 APP 都有自己的 static 文件夹,那么如何设置静态文件的路径以避免混用?以下是解决方案: 1. 在 settings 文件中修改配置路径,添加每个 APP 的 static 文件夹路径。 ``` STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "MGStudio", "static"), os.path.join(BASE_DIR, "main", "static"), os.path.join(BASE_DIR, "login", "static"), ] ``` 2. 在每个 APP 下的 static 文件夹下建立以 APP 名相同的文件夹,例如在 login/static/login/ 放入样式、JS、CSS 等文件。 3. 调用静态文件时,使用 `{% static 'main/img/firefox-logo-small.jpg' %}` 或 `{% static 'login/img/name.png' %}` 。 补充知识: 在 Django 项目上线后,无法加载 xadmin 等的静态文件问题,多数是 static 的 settings.py 设置问题。这里需要设置好其他 APP 的 static 路径,否则无法加载。 在 settings.py 文件中,STATIC_URL 是映射到静态文件的 URL,一般为 `/static/` ;STATICFILES_DIRS 是个列表,放各个 APP 的 static 目录及公共的 static 目录;STATIC_ROOT 是总的 static 目录,用于存放所有静态文件。 在使用 collectstatic 命令时,需要设置好 STATIC_ROOT 路径,以免警告。例如: ``` STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static1') STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR, 'myapp', 'static'), os.path.join(BASE_DIR, 'userapp', 'static'), ] ``` 在 urls.py 文件中,需要添加静态文件的访问处理函数: ``` from django.conf.urls.static import static from blog.settings import STATIC_ROOT urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^static/(?P<path>.*)/$', serve, {'document_root': STATIC_ROOT}), ] ``` 在项目目录下,需要运行 `python manage.py collectstatic` 命令,以便将所有静态文件收集到一个目录下。 在 Nginx 配置文件中,需要设置静态文件目录路径: ``` location /static/ { alias /home/wwwblog/myblog/static1/; } ``` 这样,Django 项目中的多个 APP 的 static 文件问题就解决了。































- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (源码)基于Go语言框架的订单管理系统.zip
- 浙江省高校一级计算机等级考试理论部分参考题总汇.doc
- 人工智能时代下的计算机网络安全的风险控制策略研究.docx
- 算法分析与设计d讲.doc
- VB酒店服务管理系统.doc
- VB图书管理完整论文.doc
- 探析信息发展下的计算机网络与经济的关系.docx
- 单片机控制的花样彩灯设计.doc
- Linux攻略DNS服务器安装配置方法详细介绍.doc
- 氨合成催化剂类翻英技术文件翻译网站及中英对照.doc
- 【传统网络营销】网站推广现状分析及推广方法介绍.doc
- (源码)基于Arduino微控制器的VNT15发动机控制器项目.zip
- 论述5G无线通信场景需求与技术演进.docx
- 项目管理进度跟踪表(DOC格式).doc
- 基于大数据的高校教务管理平台设计.docx
- 室内高精度融合定位在工业物联网的应用.docx


