部署 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_ROOT
和 STATIC_URL
或其他设置以使浏览器查找位置 2 而不是位置 1?
如果您正在使用 Linux 服务器,那么更简单的解决方案是在位置 1 中创建位置 2 静态文件夹的 符号 link。
ln -s /home/myaccount/mydjango/static /home/myaccount/public_html/static
另一种解决方案是创建 STATIC_ROOT 指向 public_html 文件夹的路径。
我知道有一些现有的 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_ROOT
和 STATIC_URL
或其他设置以使浏览器查找位置 2 而不是位置 1?
如果您正在使用 Linux 服务器,那么更简单的解决方案是在位置 1 中创建位置 2 静态文件夹的 符号 link。
ln -s /home/myaccount/mydjango/static /home/myaccount/public_html/static
另一种解决方案是创建 STATIC_ROOT 指向 public_html 文件夹的路径。