2012-10-27 33 views
0

我正在尝试使用资源标记将我的静态元素与Spring MVC链接起来 - 我无法弄清楚它们的位置。Spring MVC Resources

我出版我的链接为 -

<link rel="stylesheet" href="/css/elements.css"> 

我已经把下的文件 - 的WebContent /资源/ CSS/elements.css

我用我的servlet的资源标签 -

<mvc:resources location="/css/**" mapping="/resources/css/"/> 

我错过了什么吗?

回答

2

您颠倒了这两个属性。 locations是文件位于Web应用程序根目录中的位置。 mapping是用于从浏览器访问资源的url模式。所以配置应该是

<mvc:resources location="/resources/css/" mapping="/css/**"/> 

正如the documentation解释。

+0

改变了这一切,但仍然得到一个404 – user1755645

+0

这哪里是在文档中?文档的首页不是特别有用。 – bschlueter

+0

@bschlueter这就是为什么我没有链接到首页,而是链接到处理此配置的文档的特定部分。给浏览器一些时间来加载完整的长页面。 –

0

用c发现的错误..:网址公布的绝对路径帮助:)

现在我出版我的网址为

&lt;link rel="stylesheet" href="&lt;c:url value="/css/slideshow.css" />"> 
+0

这是回答错字还是没有错误? – djangofan

2

你有你的资源在“资源”文件夹中,这样你在调度程序xml中添加了以下行。

<mvc:resources location="/css/**" mapping="/resources/css/"/> 

并且此资源文件夹必须位于“webcontent”文件夹中。 然后,您需要通过使用上下文路径来访问资源。

<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/elements.css"> 

试试看。它应该工作。

0

如果您使用的是相对于Tomcat根上下文的位置,那么您需要这样做。这个和其他的答案之间的区别是,我包括在位置映射应用程序上下文:

<mvc:resources location="/webapp-name/resources/" mapping="/resources/**"/> 

属性“映射”是相对于类路径而“位置”是相对于的Tomcat根。 (注:这些都不是“相对”的URL)

这个配置将提供访问子文件夹中的资源,如/resources/css/*