Java struts 2&;中不同环境的不同资源文件根目录;网站

Java struts 2&;中不同环境的不同资源文件根目录;网站,java,css,jsp,tomcat,struts2,Java,Css,Jsp,Tomcat,Struts2,我对Struts 2和Sitemesh非常陌生。我是一个前端开发人员,需要更改很多CSS和JS文件。我想要的是一种方法,在这种方法中,我不必为我在JS和CSS文件中更改的每个字符重新部署整个项目 我认为有用的是在apache中创建一个vhost,其中根目录转发到struts资源文件夹(Tomcat在8080上工作,apache在80上工作)。在decorator文件中,我定义了一个变量,在需要部署时将对其进行更改。在工作模式下,将类似于: <s:set var="resourceRoot"

我对Struts 2和Sitemesh非常陌生。我是一个前端开发人员,需要更改很多CSS和JS文件。我想要的是一种方法,在这种方法中,我不必为我在JS和CSS文件中更改的每个字符重新部署整个项目

我认为有用的是在apache中创建一个vhost,其中根目录转发到struts资源文件夹(Tomcat在8080上工作,apache在80上工作)。在decorator文件中,我定义了一个变量,在需要部署时将对其进行更改。在工作模式下,将类似于:

<s:set var="resourceRoot">http://resource-folder.localhost</s:set>
http://resource-folder.localhost
对于CSS链接,我认为最好有如下内容:

<link rel="stylesheet" href="<s:url value='${resourceRoot}/resources/css/styles.css' />" rel="stylesheet" />

但是,当我尝试部署tomcat时,它将传递以下消息:

org.apache.jasper.JasperException:/WEB-INF/decorators/default.jsp (行:20,列:20)根据标签中的TLD或属性指令 文件,属性值不接受任何表达式

对于我在这里的意图,什么是最佳实践


提前谢谢

一个简单的解决方法是将css文件托管在一个简单的外包Web服务器上,例如使用python:

$ cd /your/dir/to/your/sources
$ python -m SimpleHTTPServer
。。。并将java指向此服务器(例如:localhost/styles.css等)

编辑:对不起,我现在读到你的问题是属性标签,你已经在尝试我发布的方式


为什么需要变量,不能在java代码中设置URL吗?然后,您可以使用运行时参数来决定是否需要从外部服务器获取源

是的,这是我开发这台机器的目的,但它将部署在实时系统上,我不想更改所有URL以适应新的资源位置。我想要一个简单的方法,通过java项目中的一个变量来更改它。在java代码中,您根据启动vm的数据构建url。e、 g.“-d开发=真实”。然后在Java代码中,通过“Boolean isDevelopment=System.getProperty(“development”);”查询属性,并根据此创建源url?谢谢。我试试这个。我还不知道如何在java中设置所有这些。另一种可能性是如果您使用的是maven。您可以使用maven筛选来填充包含资源url的属性文件。然后,您将使用maven配置文件来决定要使用哪个url。我在这里找到了一个快速的解释: