【问题标题】:Collect CSS/JS Resources in Spring Controller在 Spring Controller 中收集 CSS/JS 资源
【发布时间】:2012-02-03 13:27:53
【问题描述】:

我想在一个控制器中收集所有的 css/js 资源。

这将导致每个资源都有一个 HTTP 请求。

例子:

package my.package;

// [...imports...]

@Controller
@RequestMapping( "/res" )
public class ResourcesController
{
  @RequestMapping( value = "/style.css", headers = "content-type=text/css" )
  // [...] collect all css files from /WEB-INF/css/**

  @RequestMapping( value = "/scripts.js", headers = "content-type=text/javascript" )
  // [...] collect all js files from /WEB-INF/js/**
}

我已经有一个使用 Apache Tiles 的 DispatcherServlet,所以我想我需要制作一个新的 servlet?!

<servlet>
  <servlet-name>resources</servlet-name>
  <servlet-class>?org.springframework.web.servlet.ResourceServlet?</servlet-class>
  <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>resources</servlet-name>
  <url-pattern>/res/*.css</url-pattern>
  <url-pattern>/res/*.js</url-pattern>
</servlet-mapping>

org.springframework.web.servlet.ResourceServlet 类正确吗?

那么我必须在我的 resources-servlet.xml 中添加什么?这个?

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

  <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" />

  <context:component-scan base-package="my.package" />

</beans>

我的映射方法在控制器中应该是什么样子? 任何示例代码都会非常有用。在互联网上找不到任何东西...

【问题讨论】:

  • 不完全确定您为什么要这样做。鉴于您找不到任何有关它的资源这一事实表明很少有人这样做。
  • 我完全不知道 Spring 部分,但我至少可以看出你的 URL 模式是错误的。 * 只能是最后一个字符的第一个。例如。 /res/**.js.

标签: spring servlets spring-mvc


【解决方案1】:

我已经有一个使用 Apache Tiles 的 DispatcherServlet,所以我想我需要制作一个新的 servlet?!

不——你应该只有 DispatcherServlet。 -- 每个 Spring Controller 都由这个 servlet 处理。


但总的来说,你的所作所为看起来很奇怪。

例如

   <mvc:resources location="/, classpath:/META-INF/web-resources/"
    mapping="/resources/**" />
  • 但也许你尝试更复杂的东西,比如Jawr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-19
    • 2014-10-11
    • 1970-01-01
    • 2012-08-27
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多