我是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或属性指令 文件,属性值不接受任何表达式
对于我打算在这里打算什么是最佳做法?
提前致谢!
答案 0 :(得分:0)
一个简单的解决方法是在简单的外包网络服务器上托管css文件,例如:用python:
$ cd /your/dir/to/your/sources
$ python -m SimpleHTTPServer
...并将您的java指向此服务器(例如:localhost / styles.css等)
编辑:对不起,我现在看到你的问题是属性标签,你已经尝试了我发布的方式......
为什么需要变量,是否可以在java代码中设置URL?然后,您可以使用运行时参数来确定是否需要从外部服务器获取源。