在我的應用程序,我用的是Struts2的,和我創建了一個基礎動作上懸而未決的路徑問題:基本路徑在JSP
class BaseAction{
private String path;
static{
HttpServletRequest request = ServletActionContext.getRequest(); path=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();+"/";
}
}
然後,所有其他行動延長這一baseaction。
在我的jsp頁面,我添加路徑爲基礎:
xx.jsp:
....
<head>
<base href="<s:property value='path'/>">
<script ... src="res/test.js" />
</head>
它運作良好,在我自己的機器。
http://localhost:8080/app 的test.js canbe通過找到的 「http://本地主機:8080 /應用/ RES/test.js」
但是當其他人試圖訪問我的應用程序,他們使用:
現在,瀏覽器仍然會嘗試通過 下載test.js的 「http://本地主機:8080 /應用/ RES/test.js」
當然,它不能得到它。真正的道路應該是: http://192.168.x.x:8080/app/res/test.js
因此,「路徑」是在行動中的硬代碼,任何想法來解決這個問題?
您可以驗證的基本href是正確的HTML這些其他人看到了什麼?從靜態初始化程序訪問Servlet上下文或請求看起來很麻煩。 – Thilo 2011-03-30 11:11:20
...正如從靜態初始化器中設置實例變量一樣。那如何編譯? – Thilo 2011-03-30 11:12:56
在其他人看到的HTML頁面中,基礎href是stil「http:// localhost:8080/app」 – hguser 2011-03-30 12:16:37