如何通过#include在Velocity宏中包含静态或上传的文件

时间:2012-06-20 14:15:54

标签: velocity

我试图通过在初始请求下载的HTML中嵌入一些CSS来优化一些移动网页(或更准确地说服务器请求的数量)。

这些页面来自我们基于Vosao的CMS,并使用Apache Velocity宏。

这正如预期的那样正常。

<link rel="stylesheet" type="text/css" media="screen" href="/file/downloads/contact.css" 

这失败

<style>
#include( "/file/downloads/contact.css" )
</style>

因为Velocity无法找到该文件,使用此输出

org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/file/downloads/contact.css'

和日志

org.apache.velocity.runtime.log.CommonsLogLogChute log: ResourceManager : unable to find resource '/file/Downloads/contact.css' in any resource loader.
E 2012-06-20 13:59:19.688
org.apache.velocity.runtime.log.CommonsLogLogChute log: #include(): cannot find resource '/file/Downloads/contact.css', called at vm[line 7, column 3]

我已经阅读了速度文档(关于资源ROOT属性),甚至花了一些时间在源代码上。我在加载时玩过那些属性....并且没有运气。

如何让Velocity在我的/ war目录中包含静态文件,或者从路径中包含它?

2 个答案:

答案 0 :(得分:2)

我成功地使用了这样的:

<style type="text/css">
  #include("my/path/to/file/file.css")
</style>

你的文件路径可能错了吗?

答案 1 :(得分:0)

我认为#include会加载另一个模板文件(.vm),而不是css文件。