【发布时间】:2020-08-15 11:01:57
【问题描述】:
我看过很多类似的帖子,但没有什么能对我有用。当我加载我的静态文件时,浏览器会为我的所有 css 文件抛出这种错误。 当我收集静态时,它工作正常,而且当我运行 findstatic 时,它会将我指向正确的目录。所以我对正在发生的事情有点迷茫,因为我的静态文件似乎在它们应该在的位置,但 nginx 找不到它们,尽管它们的路径是正确的。
GET https://www.exostock.net/staticfiles/vendor/font-awesome/css/font-awesome.min.css net::ERR_ABORTED 404 (Not Found)
和
Home:136 GET https://www.exostock.net/staticfiles/img/logo8.png 404 (Not Found)
从我阅读的信息和 django + nginx 文档中,我无法发现我在哪里犯了错误。我已经用了几天了,我希望有人能看到我看不到的东西。
nginx/sites-available/app.conf
server {
server_name exostock.net www.exostock.net;
location / {
include proxy_params;
proxy_pass http://unix:/home/ubuntu/exostocksaas/app.sock;
}
location /static/ {
alias /home/ubuntu/exostocksaas/collected_static/;
}
location ~ \.css {
add_header Content-Type text/css;
}
location ~ \.js {
add_header Content-Type application/x-javascript;
}
}
django 中的settings.py
STATIC_URL = '/staticfiles/'
# STATICFILES_FINDERS = (
# 'django.contrib.staticfiles.finders.FileSystemFinder',
# )
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'staticfiles')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
我的 html 链接到静态
<!-- Bootstrap CSS-->
<link href="{% static 'vendor/bootstrap/css/bootstrap.min.css' %}">
<!-- Font Awesome CSS-->
<link href="{% static 'vendor/font-awesome/css/font-awesome.min.css' %}">
<!-- Custom Font Icons CSS-->
<link href="{% static 'css3/font.css' %}">
更新:我做了建议的更改,但它仍然不起作用,当我查看 nginx 错误日志时,它显示静态路径如下
"/usr/share/nginx/html/staticfiles/
这是错误的,因为如果我查看 html 文件夹内部,则只有“欢迎使用 nginx”htlm 页面。问题是为什么 nginx 在那里搜索文件?我已经删除了默认文件,但是即使在重新启动 nginx 后,错误日志仍然指向,服务器也是。
【问题讨论】:
-
你试过运行
python manage.py collectstatic吗? -
是的,它工作正常,我所有的静态数据都被收集了