【发布时间】:2016-12-11 19:45:49
【问题描述】:
我在使用上下文路径时遇到了 Spring Boot 中的静态内容问题。即:我希望将我的应用部署到localhost:8080/{appname}/
当我在没有上下文路径的情况下运行应用程序时,一切正常,Spring Boot 找到并运行我的 .html 文件(来自资源/模板/,我正在使用 Thymeleaf)和 JS 文件(来自资源/静态/js /) 但是当我添加上下文路径时:
server.context-path=/{appname}
或
server.servlet-path=/{appname}
那么.html页面仍然显示由JS文件生成404错误。
我尝试更改application.properties 中的spring.resources.static-locations 并覆盖我的MvcConfig.class 中的addResourceHandlers() 方法,但似乎都不起作用
我使用MvcConfig 类,因为我需要定义CookieLocaleResolver 和MessageSource,但这就是MvcConfig 中的全部内容。我不使用@EnableWebMvc,只使用带有@ComponentScan 的@SpringBootApplication 注释。
任何帮助将不胜感激:)
【问题讨论】:
-
你能粘贴你的配置和目录结构吗?
-
js文件的预期URL是404ing吗?还是HTML引用的JS文件是404ing? (例如,HTML 在没有应用上下文的情况下引用 JS 的问题,或其他问题)
-
@rhinds HTML 引用了没有应用上下文的 JS
-
为了将来的参考,我将在这里添加一个简短的评论,因为我认为很多人使用 spring-boot 和 react 客户端的组合。我在反应时遇到了完全相同的症状,并通过在
package.json中设置homepage并使用与在application.yml中设置context-path相同的字符串来解决它。 IE。context-path: /foobar必须与"homepage": "/foobar"一起使用
标签: java spring spring-boot