2

JavaScript 和 CSS 文件的链接似乎有一个绝对 URL,例如:

    <script type="text/javascript" src="http://test.dp.com:8080/js/jquery-1.9.1.min.js"  language="javascript">
    <script type="text/javascript" src="http://test.dp.com:8080/js/bootstrap.min.js" language="javascript">
    <script type="text/javascript" src="http://test.dp.com:8080/js/holder.js" language="javascript">
    <link type="text/css" href="css/bootstrap.css" rel="stylesheet">

但我希望他们是:

    <script type="text/javascript" src="js/jquery-1.9.1.min.js" language="javascript">
    <script type="text/javascript" src="js/bootstrap.min.js" language="javascript">
    <script type="text/javascript" src="holder.js" language="javascript">
    <link type="text/css" href="css/bootstrap.css" rel="stylesheet">

它也类似于屏幕上的链接。

我想让它们相对,然后可以在应用程序前面添加反向代理。

4

1 回答 1

1

这些来自 webroot 组件中的 Header.html.ftl 文件,并使用如下值:

${sri.buildUrl(scriptLocation).url}

有许多这样生成的 URL 带有完整的 URL,包括主机名等。当不在本地运行时,您几乎总是需要在 Moqui Conf XML 文件中设置外部主机名和端口。例如:

<webapp-list>
    <webapp name="webroot" http-host="www.mydomain.com" http-port="80" https-enabled="false">
        <root-screen host=".*" location="component://webroot/screen/webroot.xml"/>
    </webapp>
</webapp-list>

请注意,这仍然具有 https-enabled="false"。如果将其设置为 true,则还要设置 @https-host 和 @https-post 属性。

请注意,如果您将 http-host、http-port、https-host 或 https-port 中的任何一个留空,它们将默认为 HTTP 请求上的主机名和端口。这是处理多租户或多根屏幕设置的虚拟主机的方法。为此,必须设置任何负载平衡器或其他代理(例如 httpd 上的 mod-proxy)以通过此 HTTP 请求信息。

于 2014-01-29T16:27:02.040 回答