2016-07-04 148 views
1

我不知道什么是有这种行为发生,但是当: 我包括在HTML下面的脚本链接具有角度应用静态内容行为的Spring Boot MVC?

<link href='./css/style.css' rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="./js/app.js"></script> 

的页面不应用CSS或者JS,如果我只是在任何浏览器中打开HTML页面直接,但它在服务器上运行,并应用链接

当我包括代替下面的链接透水

<link href='../static/css/style.css' rel="stylesheet" type="text/css"/> 
<script type="text/javascript" src="../static/js/app.js"></script> 

它运行直接打开浏览器页面的时候,但它的当在服务器上运行 未申请我想不通为什么会发生

+0

因为您不应该使用相对链接...请改用绝对链接。 –

+0

Spring引导项目中的绝对链接应该如何实现,并且可以部署吗? –

+0

为什么它应该不同,如果你部署或不? –

回答

1

这背后的原因是因为当你在服务器上运行,春天开机src/main/resources/static文件夹映射到您的上下文根(通常/)。

这意味着,如果你有以下结构:

src/ 
    main/ 
    resources/ 
     static/ 
     myStyle.css 
     templates/ 
     index.html 

无论是src/main/resources/static/myStyle.csssrc/main/resources/templates/index.html将作为/myStyle.css/index.html

如果您使用的是Spring引导,您应该从永远不要在您的链接/引用中包含static/(或templates/)部分。你应该从来没有直接在浏览器中打开HTML页面,因为这并不反映任何真实的环境。

为了使其在本地工作,您应该运行Spring启动应用程序并通过浏览器打开应用程序,而不仅仅是项目本身中的某个HTML文件。

相关问题