部署 Django 应用程序时出现静态文件问题

Static file issue when deploying an Django app

我知道有一些现有的 problems/answers 关于在生产中加载静态文件。

但是,我的情况有些不同。我的 Django 应用程序未部署为我网站的主要应用程序(不在服务器的 public_html 文件夹中),而是一个附加应用程序(在 public_html 之外的文件夹中)。服务器文件夹目录是这样的

home/myaccount/
├── public_html
|      └── static (not exist, location 1)
├── mydjango
       └── static (generated by collectstatic, location 2)
            └── css, fonts etc.

在我的 settings.py、STATIC_ROOT = os.path.join(BASE_DIR, 'static/')STATIC_URL = '/static/' 中。

目前,浏览器将在不存在的位置 1 中查找静态文件,即 www.mypage.com/static/...,而不是位置 2。404 错误 return。

我的问题是如何更改 STATIC_ROOTSTATIC_URL 或其他设置以使浏览器查找位置 2 而不是位置 1?

如果您正在使用 Linux 服务器,那么更简单的解决方案是在位置 1 中创建位置 2 静态文件夹的 符号 link

ln -s /home/myaccount/mydjango/static /home/myaccount/public_html/static

另一种解决方案是创建 STATIC_ROOT 指向 public_html 文件夹的路径。