В моем приложении я использую Struts2, и создать базу для действий SLOVE проблемы пути:BasePath в 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
SInce, «путь» - это жесткий код в действии, любая идея исправить это?
Вы можете убедиться, что база HREF правильно в HTML эти другие люди видят? И доступ к контексту сервлета или запросу от статического инициализатора, кажется, требует неприятностей. – Thilo
... как и установка переменной экземпляра из статического инициализатора. Как это вообще компилируется? – Thilo
На странице html, которую другие люди видят, базовый href является «http: // localhost: 8080/app» – hguser