如何解决服务 Django 静态文件的 Nginx 必须具有与 URL
我使用 Nginx 提供静态文件。我的配置是这样的:
# django settings
STATIC_URL = '/static_folder/'
STATIC_ROOT = '/app_data/'
# nginx config
location /static_folder/ {
root /app_data/;
}
它不是这样工作的。我需要更改 STATIC_ROOT 以包含 static_folder 部分。像这样:
# django settings
STATIC_URL = '/static_folder/'
STATIC_ROOT = '/app_data/static_folder/' # <-- here
# nginx config
location /static_folder/ {
root /app_data/;
}
我希望能够像这样服务:
/app_data/logo.png
instead of this:
/app_data/static_folder/logo.png
如果您在 STATIC_URL 中有一个 URL 部分并不是什么大问题,但是如果我使用嵌套的 URL,我也需要在 STATIC_ROOT 中重复它。它变得太深了。例如:
# django settings
STATIC_URL = '/static_folder/and/another/folder'
STATIC_ROOT = '/app_data/static_folder/and/another/folder/'
# nginx config
location /static_folder/ {
root /app_data/;
}
如何摆脱这种情况并在 /app_data/ 中提供文件而不在文件夹结构中包含 static_url 部分。
解决方法
我想在你的情况下它必须是alias
,而不是root
:
location /static_folder/ {
alias /app_data/;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。