NginX重写和绝对资源path

在我的域名上,我有一个Meteor应用程序的子域

http://meteor.example.com/ 

在此之下,我想个人应用程序,每个应用程序的URI。 说meteor应用聊天应该有这个url:

 http://meteor.example.com/chat/ 

这是我的configuration:

 location ~ /chat/(.*) { proxy_pass http://127.0.0.1:4000/$1; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header X-Forwarded-For $remote_addr; if ($uri != /snake_meteor/) { expires 30d; } } 

我按照这个指南来configuration它。

现在,这部分工作。 它将请求传递给应用程序,并返回页面的正确的HTML,但是随后出现问题。 返回的HTML引用资源文件,如JS,CSS和图像。 HTML中的引用不幸的是在表单上

 <script src="/somescript.js"></script> 

所以它的要求

 http://meteor.example.com/somescript.js 

绝对path…

在应用程序中更改它们并不是一个真正的select。 也不能将资源放在域的根目录下。

有什么我可以在Nginxconfiguration中做到这一点工作? 或者我有其他方式做这个,像另一个子域的水平?

编辑:我的一个朋友build议检查参考头。 它部分地工作。 一些文件被提取,但build立一个websocket和其他一些东西失败。

我为此添加的configuration是

 location / { if ($http_referer ~ /chat/) { rewrite ^(.*) /chat/$1 permanent; } } 

这是一个可以接受的方式吗? 我敢肯定,这部分configuration可以以某种方式重写,也考虑到同一个域上的其他meteor应用程序,但我不是Nginxconfiguration专家。 请帮忙一下?

不幸的是,唯一合理的解决scheme是修复应用程序,以便生成正确的URL。 所有其他解决scheme将导致微妙的问题。