繁体   English   中英

资源映射Spring框架3

[英]Resource mapping Spring framework 3

我实际上面临以下问题:

我正在使用Spring和jQuery。 我有控制器:

@Controller
@RequestMapping(value = "/A")
public class AController {
    // not important
}

那可以处理所有host/A/... URL。 但是jQuery CSS样式使用的是url(images/...) ,因此存在从host/A/index.jsphost/A/images/...引用。 但是我没有这样的文件夹,因为/ A /只是“逻辑” URL。

我试图添加

<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/A/images/**" location="/images/" />

到我的web.xml,但似乎无法正常工作(第一个工作正常)。 例如,当我尝试对此进行测试时, host/A/test.png无法正常工作。

当然,我可以修改jQuery源,但是我不喜欢这种方式。

如果没有更简单的解决方案,也许我可以使用UrlRewriteFilter

我建议您在结果HTML中使用BASE标记:

<html>
   <head>
       <base href="http://localhost:8080/myApp/" />
       ....

然后,无论您位于http://localhost:8080/myApp/还是http://localhost:8080/myApp/A/ ,所有图像请求都将发送到http://localhost:8080/myApp/images/... http://localhost:8080/myApp/A/

如果您位于诸如tomcat之类的应用服务器中,则可以在web.xml文件中执行此操作:

   <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/images/*</url-pattern>
   </servlet-mapping>

在我的项目中,通常我会这样:)

   <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.PNG</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.swf</url-pattern>
    <url-pattern>*.avi</url-pattern>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.json</url-pattern>
</servlet-mapping>

这样,您需要创建一个“物理”“ ./A/images/”文件夹。

在另一个应用程序服务器中,该值可以更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM