2016-08-05 58 views
2

使用上下文路径时,我在Spring Boot中遇到了静态内容问题。即:我希望当我运行的应用程序没有上下文路径上的一切以我的应用程序部署到localhost:8080/{appname}/带上下文路径的Spring Boot静态内容

正常工作和春季启动查找和运行我的.html文件(从资源/模板/,我使用Thymeleaf)和JS文件(从资源/静态/ JS /),但是当我添加上下文路径之一:

server.context-path=/{appname} 

OR

server.servlet-path=/{appname} 

那么.html页面仍然被JS文件显示生成404错误

我试图更改application.properties和压倒一切的addResourceHandlers()方法spring.resources.static-locationsMvcConfig.class但既不似乎工作

我使用MvcConfig类,因为我需要定义一个CookieLocaleResolverMessageSource,但是这就是我有在MvcConfig。我不使用@EnableWebMvc,只需@SpringBootApplication注释@ComponentScan

任何帮助,将不胜感激:)

+0

可以粘贴您选择的配置和drectory结构? –

+0

是否该js文件的预期URL是404ing?或者HTML引用的JS文件是404ing? (例如,HTML引用的JS没有应用上下文,或其他的问题) – rhinds

+0

@rhinds HTML引用JS没有应用上下文 – svg

回答

1

按您的评论:

HTM L引用的是没有应用上下文的JS

这个问题不在Spring中为js服务,它的页面没有正确地创建到资源的URL。

Thymeleaf提供了一种自动支持该机制的机制,只需使用th前缀标记src属性即可。

见第2节“上下文相关的URL”:www.thymeleaf.org/doc/articles/standardurlsyntax.html

+0

这解决了问题,thx!我之前实际上已经使用@ {/ js/jquery-2.2.3.min.js}进行了测试,但是我认为还有其他事情也被破坏了,并且我用一个正常的

-1

我的配置是:

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 

    public static final Logger LOG = LoggerFactory.getLogger(MvcConfig.class); 

    @Bean 
    public LocaleResolver localeResolver() { 

     CookieLocaleResolver cookieLocaleResolver = new CookieLocaleResolver(); 
     cookieLocaleResolver.setCookieName("language"); 
     cookieLocaleResolver.setCookieMaxAge(-1); 
     cookieLocaleResolver.setDefaultLocale(Locale.FRENCH); 
     return cookieLocaleResolver; 
    } 

    @Bean 
    public MessageSource messageSource() { 
     ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); 
     messageSource.setBasename("classpath:i18n/lang"); 
     messageSource.setDefaultEncoding("UTF-8"); 
     return messageSource; 
    } 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(new Urli18nRewriterInterceptor()); 
    } 
} 

和文件夹结构:

folder structure

+1

你应该添加你的配置作为答案,你应该添加它对你的问题。 –

相关问题