私のアプリケーションでは、struts2を使用し、パスの問題を解決するための基本アクションを作成します。
class BaseAction{
private String path;
static{
HttpServletRequest request = ServletActionContext.getRequest(); path=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();+"/";
}
}
次に、他のすべてのアクションがこの基本アクションを拡張します。
私のjspページで、ベースとしてパスを追加します。
xx.jsp:
....
<head>
<base href="<s:property value='path'/>">
<script ... src="res/test.js" />
</head>
それは私自身のマシンでうまく機能します。
http:// localhost:8080 / app test.jsは、「http:// localhost:8080 / app / res/test.js」で見つけることができます。
しかし、他の人が私のアプリにアクセスしようとすると、次のようになります。
現在、ブラウザは引き続き「http:// localhost:8080 / app / res/test.js」でtest.jsをダウンロードしようとします。
もちろん、それを取得することはできません。実際のパスは次のようになります: http://192.168.xx:8080 / app / res / test.js
以来、「パス」はアクションのハードコードですが、これを修正するためのアイデアはありますか?