我有一个这样结构的Web应用程序:
|
|__ static
|__style.less
|__images
|__ myapp.py
|__ wsgi.py
我已经设法使用nginx和wsgi运行Web应用程序,但问题是静态文件没有提供,我的意思是,当我去他们的URL时,服务器找不到他们。我是404。
下面是我的nginx配置文件部分:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/public_html;
index index.php index.html index.htm;
server_name xxxxxxx.com;
location / {
try_files $uri $uri/ =404;
}
location /myapp {
include uwsgi_params;
uwsgi_pass unix:/var/www/public_html/myapp/myapp.sock;
}
是不是少了什么?
2条答案
按热度按时间tv6aics11#
将此添加到您的nginx配置中
将
/project_path/
替换为app的绝对路径,需要注意的是,它不包含静态目录,/project_path/static/
内部的所有内容都将在url/static/
中serverd。vi4fp9gy2#
从How to Configure NGINX for a Flask Web Application
我发现这个解决方案更好:
当然,将
<path to project>
替换为项目的目录。请注意,在此解决方案中,
static
包含在路径中!这对安全性真的很有好处!降低了意外提供应用程序源文件的风险。默认情况下,flask将源文件放在<path to project>
中,配置中的一个小错误可能会使这些源文件对攻击者可见。location
的路径必须以/
结束。