两个不同的URI映射相同的视图,一个工作正常,但css无法加载另一个

时间:2014-08-28 02:53:16

标签: java spring spring-mvc spring-security spring-boot

有两种方法使用不同的URI映射到spring引导中的同一视图,第一种方法效果很好,但是,第二种方法只能显示html而css无法加载,代码如下:

@Controller
public class ExamController {
    @RequestMapping("/quiz0")
    public ModelAndView quizingA() {
        System.out.println("run into quiz0");
        ModelAndView modelAndView = new ModelAndView("examination");
        return modelAndView;
    }

    @RequestMapping("/quiz1/{course}")
    public ModelAndView quizingB(@PathVariable("course") String course) {
        System.out.println("run into quiz1, couse choosed: " + course);
        ModelAndView modelAndView = new ModelAndView("examination");
        return modelAndView;
    }
}

从日志中可以看出,两者都已成功到达,正如我所知,不应该存在错误,对吗?

对于第一个效果很好的我使用的网址是

http://localhost:8080/quiz0

对于我使用的网址失败的第二个是:

http://localhost:8080/quiz1/Java

还有一个信息,我已通过覆盖WebSecurityConfigurerAdapter禁用了spring安全性。如果需要,我可以将其粘贴。

有人可以帮忙解释一下吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

你可能会用相对路径而不是绝对路径来包含你的css。

e.g。
如果你这样包括

<link type="text/css" href="css/bootstrap.css" rel="stylesheet"/>

路径将转换为

/quiz0/css/bootstrap.css

/quiz1/{course}/bootstrap.css

我建议使用绝对路径

<link type="text/css" href="/css/bootstrap.css" rel="stylesheet"/>