我在mule项目的src/main/resources
下有一个html文件。如何在资源基础路径字段中提及html文件相对于我的项目目录的相对路径,以便http静态资源处理程序呈现html文件。我在资源库中给了${app.home}/src/main/resources
,但是${app.home}
指向了下面的目录
/用户/ XX / GIT中/项目/的 .mule /应用 /集成/ SRC /主/资源/
我不确定为什么要查看.mule / apps目录。
我的html文件在此路径下。
/Users/xx/git/projects/integration/src/main/resources/app.html
答案 0 :(得分:2)
您的$ {app.home}指向正确的位置。不要忘记您运行的应用程序在Anypoint Studio中不是您的环境的应用程序服务器上存档(压缩),部署和运行。
因此,当它运行时,它会在另一个地方运行。你应该在这个新的地方拥有所有必要的文件。为了方便起见 - 使用资源而不是文件。让应用服务器携带文件所在的位置。
以下是显示目录 public 中的任何静态文件(作为资源)的简单示例
这是代码
<flow name="publicFilesHttpsFlow">
<http:listener config-ref="HTTPS_listner" path="/StatusESB/public/*" doc:name="HTTP"/>
<set-variable variableName="resourceName" value="#[message.inboundProperties['http.request.uri'].substring(18)]" doc:name="Variable"/>
<set-payload value="#[Thread.currentThread().getContextClassLoader().getResourceAsStream(flowVars.resourceName)]" doc:name="Set Payload"/>
</flow>
在此示例中,目录src / main / resources / public下的任何文件都是资源,并且通过对应用程序服务器的deplyment来提供,将作为html页面显示。像