欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Django 管理后台无法加载 css 文件

最编程 2024-10-19 07:40:58
...

解决办法是:

IIS:

1、在settings.py中设置好STATIC_ROOT ,创建对应的文件夹。

2、执行python manage.py collectstatic 完成静态文件收集

3、在静态文件根目录下创建web.config,说明本路面可以访问

4、在iis站点管理中创建一个STATIC_URL的访问路径为的虚拟目录指向STATIC_ROOT

============

在大多数现代 Web 开发框架和语言中,静态文件的 URL和 本地硬盘上的绝对路径DIR通常都会通过变量或配置文件来管理。这样做的目的是为了更灵活地处理静态文件在开发环境、测试环境、生产环境中的差异,并且让代码更易于维护和部署。

简单的例子如:一个第三方库使用的静态文件,其存储路径和访问路径都有必要通过变量或配置文件来管理,否则集成起来很麻烦。python manage.py collectstatic 就是用来解决这个问题的。

django settings.py中 

  • STATIC_ROOT 是静态文件的最终目的地。
  • STATICFILES_DIRS 是静态文件的源目录。
  • collectstatic 命令会将 STATICFILES_DIRS 中的所有静态文件收集到 STATIC_ROOT 中。

-----------------------

早期,这种复杂的静态文件管理方式并不常见。那时候的网站通常是“页面驱动”的,静态文件简单地组织在特定的目录下,然后直接在 HTML 模板中引用它们即可。在不涉及复杂前端逻辑的情况下,这种方式是适合的。

但是随着 Web 开发的复杂度和规模 不断增加,尤其是在前后端分离、单页应用(SPA)等现代开发范式的普及之后,静态资源管理的问题变得越来越显著:

1、前端资源的增多、存储位置分布散乱。

2、集中存放集中管理,才能便于文件压缩(例如 Gzip 压缩)、缓存控制、及CDN分发。

3、Webpack等构建工具,使静态文件的收集和处理成为了现代项目构建过程中的标准步骤。

2010年代中期开始,特别是在单页应用(SPA)流行之后,前后端分离的开发模式让静态文件的优化成为重点,构建工具(如 Webpack)开始广泛使用,使得静态文件的打包、优化成为常态。各种语言的框架(Django、Laravel、Spring 等)也逐渐引入了类似 collectstatic 的静态文件管理和优化机制。

随着web项目复杂程度提高,一个项目有很多模块、子模块,若按旧模式管理静态资源,文件存放的目录层次可能很深,静态资源分布散乱。

早期,Web 前端开发一般不需要部署一个web server作为开发环境,做出来的页面通过浏览器直接访问本地文件(file://dir/filename)即可正常渲染,查看页面效果。然而,随着 Web 技术的发展和复杂度的增加,现代前端开发几乎都需要运行一个本地 Web 服务器,通常访问路径为 http://127.0.0.1:端口(或 localhost:端口

  • 现代 Web 开发已经不再是简单的静态页面,而是复杂的 单页应用(SPA) 或 多页动态 Web 应用。例如使用框架如 React、Vue、Angular,这些框架通常需要通过 Web 服务器来处理页面路由、API 请求等功能。
  • 页面通常由 构建工具(如 Webpack、Vite)打包和编译,这些工具需要通过 Web 服务器来实时监视和更新开发中的文件。
  • 动态资源的加载、API 请求、跨域问题等现代需求,都依赖于 HTTP 协议,在 file:// 协议下无法正常工作。

动态路由与浏览器历史模式

单页应用(SPA)和其他复杂的前端框架(例如 React Router)常常依赖于 HTML5 History API 来处理页面路由。这意味着你可以通过修改 URL 来实现页面的无刷新跳转,但这在 file:// 协议下是不可能实现的。只有在通过 Web 服务器提供文件时,路由功能才能正常工作。

推荐阅读