struts 2&中不同环境的不同资源文件根目录。的sitemesh

时间:2014-04-07 13:45:39

标签: java css jsp tomcat struts2

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

我认为有用的是在apache中创建一个vhost,其中root转发到struts资源文件夹(Tomcat正在8080上工作,apache在80上工作)。在装饰器文件中,我定义了一个变量,我将在需要部署时更改该变量。在工作模式中将是:

<s:set var="resourceRoot">http://resource-folder.localhost</s:set>

对于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或属性指令   文件,属性值不接受任何表达式

对于我打算在这里打算什么是最佳做法?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

$ cd /your/dir/to/your/sources
$ python -m SimpleHTTPServer

...并将您的java指向此服务器(例如:localhost / styles.css等)

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

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