nginx proxy_传递到flask在/static找不到jquery时工作

nginx proxy_传递到flask在/static找不到jquery时工作,nginx,url-redirection,proxypass,Nginx,Url Redirection,Proxypass,我是一个noob和nginx(还有apache和php…) 我有一个烧瓶应用程序,它可以从以下位置正常工作: http://127.0.0.1:5000 也可以从外部 http://myhost.com:5000 我想使用 myhost.com/rest\u 1 为其他人腾出空间休息,比如myhost.com/rest\u 2。。3等等。 应用程序位于 /opt/rest\u 1 并使用它的/static文件夹中的一些资源,如css和jquery 我有这个 /etc/nginx/sites av

我是一个noob和nginx(还有apache和php…)

我有一个烧瓶应用程序,它可以从以下位置正常工作:

http://127.0.0.1:5000

也可以从外部
http://myhost.com:5000

我想使用
myhost.com/rest\u 1

为其他人腾出空间休息,比如myhost.com/rest\u 2。。3等等。
应用程序位于
/opt/rest\u 1

并使用它的/static文件夹中的一些资源,如css和jquery

我有这个
/etc/nginx/sites available/rest_1.conf

server {
   listen 80;
   listen [::]:80;
   server_name myhost.com;
   server_name_in_redirect off;

   location /rest_1 {
            rewrite ^/rest_1(.*) /$1 break;
            proxy_pass http://127.0.0.1:5000/;
   }}
并启用了站点链接。
nginx重新启动并重新加载,无错误。
其他配置是安装时的默认配置

当我尝试连接到

myhost.com/rest\u 1

我可以看到一个不完整的页面部分工作,查看nginx日志:
/var/log/nginx/error.log

*8 open()“/usr/share/nginx/html/static/w3.css”失败(2:没有这样的文件或目录),客户端:xx.xx.xx,服务器:myhost.com,请求:“GET/static/w3.css HTTP/1.1”,主机:“myhost.com”,参考者:http://myhost.com/rest_1“

所以,我很清楚,“/usr/share/nginx/html/”是从其他地方获得的。。。还应该有一个文件夹的正确名称(我是一个noob!!)

如何告知引擎重定向到上的正确路径
/opt/rest\u 1

要恢复所有/静态功能

操作系统:ubuntu服务器16.04
nginx:1.10.3


谢谢。

因为您没有为静态内容设置一个位置资源。您的应用程序引用的是来自de root文件夹而不是rest_1的CSS

您的CSS调用为,因此它在您设置的位置不匹配,并在默认值内尝试

因此,您可以在应用程序中解决它,也可以在nginx中设置它,如下所示:

   location /static {
       root /opt/rest_1;
   }