【问题标题】:Using Spring ResourceServlet to serve multiple resources simultaneously使用 Spring ResourceServlet 同时服务多个资源
【发布时间】:2011-08-28 04:14:33
【问题描述】:

ResourceServlet 的 JavaDoc 声明它可以返回资源列表。但这种使用模式的例子似乎最多。

我们有一个包含以下内容的 web.xml:

<servlet>
  <servlet-name>Resource</servlet-name>
  <servlet-class>org.springframework.web.servlet.ResourceServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>Resource</servlet-name>
  <url-pattern>/combo</url-pattern>
</servlet-mapping>

当我们按照以下方式向 url 发出请求时: http://localhost:8080/app/combo?resource=js/file1.js;js/file2.js

我们似乎只在响应中得到了 file1。

此用例的正确配置是什么?

【问题讨论】:

    标签: java spring servlets spring-mvc


    【解决方案1】:

    ResourceServlet 已被弃用以支持使用&lt;mvc:resources /&gt; 但是,它不处理多个资源。您必须制作自己的控制器才能做到这一点。

    至于ResourceServlet,代码中使用的分隔符是,; \t\n - 它们中的任何一个都应该可以工作。

    【讨论】:

    • 我看到并阅读了源代码,如果您查看上面的示例,您会发现我们使用分号作为分隔符。不幸的是,它似乎只返回了第一个资源。
    • 你能用调试器单步调试spring代码吗?我看不出失败的理由
    【解决方案2】:

    在我们的例子中,问题原来是应用程序使用 mvc:resource 实用程序来处理静态文件的版本控制。正如 Bosho 所指出的那样,mvc:resource 实用程序的后端不会正确响应多个文件,而且我通过查看源代码也意识到了这一点。

    【讨论】:

      猜你喜欢
      • 2020-11-13
      • 2015-05-05
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      相关资源
      最近更新 更多