我有一个 Nginx 代理服务器, http://example.com
我还有一个 ASP.NET 网页服务器, http://asp_server_ip 可以正常访问
ASP 服务器的 index.html 中有这么几行:
<script src="/bundles/modernizr?v=wBEWDufH_8Md-Pbioxomt90vm6tJN2Pyy9u9zHtWsPo1"></script>
<link href="/Content/css?v=0CO7wbdAKgh6VVE0St8oKqJBcB4RpFIbcQS63jv2JjY1" rel="stylesheet"/>
...
...
<script src="/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81" type="text/javascript"></script>
<script src="Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="Scripts/bootstrap.min.js" type="text/javascript"></script>
<script src="Scripts/respond.min.js" type="text/javascript"></script>
<script src="/bundles/WebFormsJs?v=AAyiAYwMfvmwjNSBfIMrBAqfU5exDukMVhrRuZ-PDU01" type="text/javascript"></script>
请注意"src=xxx"有的没有 backward slash "/".(比如” Scripts/")
在这种情况下,我的 Nginx 配置是:
location / {
proxy_pass http://WORDPRESS_SERVER_IP;
}
location /asp/ {
proxy_pass http://ASP_NET_SERVER_IP/;
}
现在如果我访问"http://example.com/asp",只有部分 Javascript 文件被下载(比如"Scripts/"路径下的文件可以下载),但是"/bundles/" 和 "/Content/"下的文件全部下载不了,也就是说, Nginx 只能正确地识别没有斜线的路径"Scripts"。
"Scripts/jquery-1.10.2.min.js" 可以变为
http://example.com/asp/Scripts/jquery-1.10.2.min.js
但是 ”/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81 “ 变为
http://example.com/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81
ASP 代码是我的同事写的,他告诉我上面的那些 HTML 是 ASP 自动生成的,那些斜线的有无是程序自动加的,他还不知道怎么改。
如果不改 ASP 代码?改 Nginx 配置可以解决吗?加 rewrite 规则么?谢谢大家!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.