在大胆的解决方案。
解决方案:将此 nginx 行更改为:
location /cm/static {
alias /var/www/KRAKEN/public/cm/static;
}
我希望这是个速成课程。这是我的应用程序结构:
/var/www/KRAKEN/public/cm/
.
|-- __init__.py
|-- __pycache__
|-- bin
|-- include
|-- lib
|-- mod_db
|-- mod_form
|-- requirements.txt
|-- static
|-- templates
|-- uwsgi.ini
|-- uwsgi.log
|-- views.py
由于某种原因,NGINX 在访问静态文件时会抛出 404(在我的 Flask 应用程序中,即使路径正确,它们也不会被使用)。以下是 nginx 配置:
server {
listen 80;
server_name server.me www.server.me;
root /var/www/KRAKEN/public/;
error_log /var/www/KRAKEN/public/nginx.error.log;
location / {
index index.php index.html index.htm;
}
location /cm {
include uwsgi_params;
uwsgi_param SCRIPT_NAME /cm;
uwsgi_pass unix:///var/www/KRAKEN/public/cm/socket.sock;
}
location /static {
alias /var/www/KRAKEN/public/cm/static;
}
}
某个404文件的请求头示例:
GET /cm/static/style.css HTTP/1.1
Host: www.server.me
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/css,*/*;q=0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Referer: http://www.server.me/cm/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
响应示例:
HTTP/1.1 404 NOT FOUND
Server: nginx/1.8.1
Date: Tue, 15 Mar 2016 18:20:35 GMT
Content-Type: text/html
Content-Length: 233
Connection: keep-alive
错误日志没有显示任何内容。
我错过了什么?
谢谢!
答案1
/var/www/KRAKEN/public/cm/ 中没有 style.css,因此出现 404。
我错过了什么?
您在 cm 文件夹中缺少 style.css。
重新考虑静态位置的别名,因为这似乎让您感到困惑。