【问题标题】:JavaScript is not being passed through proxyJavaScript 没有通过代理传递
【发布时间】:2014-06-12 14:43:30
【问题描述】:

我似乎不太了解代理和 JavaScript。我已经搜索了几个帖子,但我并不聪明......

我有一个 CentOS (6.4) 服务器,它充当另一台服务器 (ARMv7) 的代理。两者都运行 Apache;第一个是2.2.15版,第二个是2.2.22版。

第一台服务器的代理配置如下:

ProxyPass /PV/    http://192.168.0.30/electricity/

当调用http://mysite.bla.xxx/PV/ 时,我确实得到了(部分)在第二台服务器上提供的 index.html 文件。 然而,index.html 文件以这样的开头:

<html>
  <head>
  <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  <script type="text/javascript" src="/javascript/jquery/jquery.js"></script>
  <script type="text/javascript">
  ......

这就是问题所在...当我检查代理服务器上的错误日志时,我看到:

文件不存在:/var/www/html/javascript,引用者:http://mysite.bla.xxx/PV/

当然,这个文件/目录不存在。

我猜第二个&lt;script&gt; 标记是罪魁祸首,因为它想在第一台服务器上的本地 /javascript 中找到不存在的东西。

我说的对吗?如果是这样,我怎样才能让代理服务器上的 Apache 在第二台服务器上提供 index.html 中包含的脚本?

【问题讨论】:

    标签: javascript apache proxy


    【解决方案1】:

    从 js 的 URL 中删除第一个斜杠。

    不是&lt;script src="/javascript/jquery/jquery.js"&gt;

    但是&lt;script src="javascript/jquery/jquery.js"&gt;

    假设以斜杠开头的路径位于根目录中。因此您的链接指向http://mysite.bla.xxx/javascript/jquery/jquery.js

    【讨论】:

    • 哇,真快!谢谢 Thykka,但这不是完整的解决方案......代理服务器上的错误已经消失,但现在我在第二台服务器的错误日志中得到一个新条目,说 GET /PV/javascript/jquery/jquery.js HTTP/1.1 404 所以,仍然是 404,但现在在第二个服务器。而且,不,没有包含 jquery 的目录 javascript。会不会是第一行中的 https 破坏了一切? (目前我在公司防火墙/代理后面,通常允许 https 站点)?
    • AFAIK 链接http://mysite.bla.xxx/PV/javascript/jquery/jquery.js 应该指向http://192.168.0.30/electricity/javascript/jquery/jquery.js,而不是http://192.168.0.30/PV/javascript/jquery/jquery.js...我错过了什么吗?
    • 看起来 GET 中的地址以正斜杠开头(与接受的答案相同)。
    猜你喜欢
    • 2018-01-07
    • 2018-05-29
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多