解决Django生产环境无法加载静态文件问题的解决
线上部署时因设置了 settings.DEBUG = False 会导致静态文件都是 404 的情况。主要原因是应为关闭DEBUG模式后,Django 便不提供静态文件服务了。如果运行是通过 runserver 命令的方式,那简单,在启动 runserver 指令后追加 --insecure 选项能参数强制 django 处理静态文件。要解决这个问题,我们要手动去使用静态文件服务,这种处理方式是比较推荐的,因为它同时也支持了 runserver 的方式。解决的方式如下,在 urls.py 中添加 url 规则:这样就行了。通过写个 return_static 函数其实与 --insecure 的选项是异曲同工的。媒体文件的处理当然可以将上面 url 规则变动下就能加载了。上面的方法会搜索多个目录的,尽管开发人员会将静态文件同一放目录下。但 Django 的 admin 模块的静态文件存放在其他地方的。但显然我更希望是程序自身的处理方式。
用户评论