在Spring应用程序中无法读取样式表和JavaScript

时间:2017-04-09 13:35:40

标签: javascript css spring-mvc thymeleaf

如果我在没有Spring的情况下打开html文件,则会正确加载css和js文件。但是当我将它作为Spring应用程序运行时,css和js文件没有任何效果,输出只是一个简单的html页面。

我尝试使用百日咳和正常链接添加路径,如下所示。两次尝试都没有区别,也没有错误消息。

环顾四周,建议将文件移动到静态文件夹。这也无济于事。请指教。谢谢。

项目结构

enter image description here

添加js和css文件的链接。自动填充功能表明我认为文件位于正确位置的正确文件。

<!--<link href='http://fonts.googleapis.com/css?family=Titillium+Web:400,300,600' rel='stylesheet' type='text/css'/>-->
<!--<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"/>-->
<!--<link rel="stylesheet" href="../static/bootstrap/css/bootstrap.min.css"/>-->
<!--<link rel="stylesheet" href="../static/css/style.css"/>-->

<link th:href="@{http://fonts.googleapis.com/css?family=Titillium+Web:400,300,600}" rel='stylesheet' type='text/css'/>
<link th:href="@{https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css}" rel="stylesheet" type="text/css"/>
<link th:href="@{../static/bootstrap/css/bootstrap.min.css}"/>
<link th:href="@{../static/css/style.css}"/>

<script th:src="@{../static/bootstrap/js/bootstrap.min.js}" type="javascript"></script>
<script th:src="@{../static/js/jquery.min.js}" type="javascript"></script>
<script th:src="@{../static/js/index.js}" type="javascript"></script>
<!--<script src='../static/js/jquery.min.js'></script>-->
<!--<script src="../static/js/index.js"></script>-->

gradle文件

group 'com.fantasy'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'gs-securing-web'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    testCompile("junit:junit")
    testCompile("org.springframework.boot:spring-boot-starter-test")
    testCompile("org.springframework.security:spring-security-test")
    compile("org.springframework.boot:spring-boot-starter-security")
}

MvcConfig.java

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/index").setViewName("index");
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }

}

WebSecurityConfig.java

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/", "/index").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");
    }
}

1 个答案:

答案 0 :(得分:1)

删除链接中的“../static”,它将起作用。您的文件将映射到URL。因此,当您访问服务器时,您不会像文件系统结构那样访问它。 Spring-Boot默认定义了所需的ResourceMapping。