2014-01-28 36 views
2

的鏈接,JavaScript和CSS文件似乎有一個絕對的URL,如:如何使Moqui屏幕上的鏈接網址爲相對而非絕對的?

<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"> 

這也類似於在屏幕上的鏈接。

我想讓它們相對,那麼可以在應用程序前添加一個反向代理。

回答

1

這些來自於Web根目錄組件和使用價值的Header.html.ftl文件是這樣的:

${sri.buildUrl(scriptLocation).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端口中的任何一個留空,它們將默認爲HTTP請求上的主機名和端口。這是處理多租戶或多根屏幕設置的虛擬主機的方法。爲此,有必要設置任何負載均衡器或其他代理(例如httpd上的mod-proxy)以通過此HTTP請求信息。

+0

嗨大衛, 該鏈接看起來像http:// localhost:8080/apps/hm/Task/TaskSummary?workEffortId = HM-004。 雖然可以在webapp配置中更改它。但我想讓多個主機在同一個moqui實例上工作。 例如:讓a.test.com和b.test.com指向應用程序(通過nginx),並且每次訪問不同的承租人(通過主機名告知)。然後頁面中的鏈接應該以各自的主機名作爲前綴。使用相對路徑只會使其工作。 –

+0

它可能會在conf文件中添加多個(我沒有測試過),但似乎需要重新啓動moqui應用程序才能重新加載conf文件。不過,我希望能夠動態地改變它。 –

+0

感謝您的反饋吉米。我更新了答案來解決這個問題。 –

相關問題