【发布时间】:2021-06-27 06:49:47
【问题描述】:
我正在使用 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 部分。
【问题讨论】:
-
第一个代码有什么错误? 404?
-
是的,我收到 404 错误代码。
-
其实,既然你希望最终结果是
app_data/file.txt,那么STATIC_URL和nginx位置不应该也是'app_data'吗?
标签: django nginx nginx-location django-staticfiles