Y_csgoto
Y_csgoto
2020-04-20 21:19
采纳率: 87.5%
浏览 730
已采纳

maven构建springMVC项目后无法访问main与resources目录下的静态资源

各位大佬,小弟最近使用springmvc编写入门程序,遇到了静态资源无法访问的问题。程序的代码结构如下

图片说明

整体导包等步骤是使用maven进行的,目录结构也完善好了。但是在springmvc.xml文件中配置视图解析器时遇到了问题,不管如何修改可能的URL,其部署访问时总是报404的错误。

比如现在静态资源(success.html)在pages文件夹下,然后把pages放在main文件夹中,视图解析器配置如下:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/edu/hlju/pages/"></property>
        <property name="suffix" value=".html"></property>
    </bean>

Controller结束可以正常success字符串,但是视图解析器无法根据配置找到正确的界面。

与之对应的,如果我把静态资源放在WEB-INF目录下,调整视图解析器路径,就可以找到对应的路径。比如WEB-INF/page/success.jsp,就可以用

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/page/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

来进行解析。

可是为什么maven规范目录中的静态资源无法被解析呢,是权限问题吗?求大佬解答

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • hongchenshijie
    红尘丶世界 2020-04-21 08:30
    已采纳

    我想先问一下,为啥你不把页面统一放在 webapp 下面或者 resource 的 static 目录下,而是把页面分散放,这样也太不规范了吧, 而且 java源目录文件夹是给你放java代码的,你整个html页面能识别才怪,放resource,你在 resource目录下创建一下这个目录 /edu/hlju/pages/ 然后把success.html放到这个目录下就可以了,如果你一定要问为什么,那给你答案,因为 java 源目录下的代码是会进行编译的,编译后你的 html 就不一定能找到了,除非你能指定它不编译,不过没意义.

    点赞 评论

相关推荐