spring mvc当中有没有全局变量,类似我设置项目的路径base = "/rs" 或者base="http://192.168.0.1/rs"
然后在页面使用el表达式获取${base} 引入js或者css
因为网站部署在内网的机器如192.168.1.1 tomcat根目录 外网访问只能通过61.11.11.11:1002/project 这样进行访问,request.getContextPath()只能获取根目录。
说到底就是项目名字引起的,把项目直接仍在webApps->ROOT
下 文件夹名字大写,就不需要项目名了。
引入css
以及js
直接 就 /
好了
这和全局没关系啊,这值应该自己获取到,不是你设置的,
在类路径下新建configure.properties文件,内容如下:
web.base=root
然后在spring-mvc-servlet.xml的配置如下xml片段文,注意一定要是spring mvc配置文件中。
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:configure.properties</value>
</list>
</property>
</bean>
然后在controller使用@Value注入配置的值
@Value("${web.base}")
private String base;
内网是这么访问的http://192.168.1.1/rs
,外网是这么访问的:http://61.11.11.11:1002/project/rs
?
反向代理的问题不太懂,不过你把内网外网的路径搞成一样不就行了吗?
Threadlocal 可以试试
专门写一个配置文件,存储你需要的所有全局变量,同时构造一个方法动态读取配置,前台可以直接引入。(一个想法)
本身 spring 可以在 xml 配置类似全局变量,如在 ./application.propertites 配置固定变量,然后读取
你的问题应该 是属于 内网 到 外网 URL映射 转发的问题吧,在公网的机器上配置一下