上下文路径和静态内容|春季启动

时间:2017-03-09 19:45:24

标签: spring spring-boot

我正在尝试将我的应用程序移植到Spring引导程序,但事情对我来说很好。我面临着静态内容和contextPath的问题。我在application.properties

中添加了以下属性
server.contextPath=/sm-admin

在此之前,我指的是我的静态内容

<script src="/plugins/jQuery/jquery-2.2.3.min.js"></script>
<script src="/bootstrap/js/bootstrap.min.js"></script>

但添加contextPath后,上述配置不再有效,我有以下方式

将静态内容引用更改为

 <script src="../plugins/jQuery/jquery-2.2.3.min.js"></script>
 <script src="../bootstrap/js/bootstrap.min.js"></script>

或者

我相信应该有一些方法来处理它使用application.properties文件,但我无法找到这样的配置。有些人可以指出我正确的方向。

2 个答案:

答案 0 :(得分:2)

这个问题有两个因素:你的网络应用程序和浏览器,所以我不认为这可以通过Spring控制,因为这与浏览器的行为有关。

<强>问题

在您的“旧”html文件版本中,您的应用根上下文为/。这就是src='/plugins/jQuery/jquery-2.2.3.min.js'加载没有任何问题的原因。

现在,由于您的应用根权限已更改为/sm-admin,因此您的网络应用仅会提供前缀为该路径的请求。这就是src='/plugins/jQuery/jquery-2.2.3.min.js'不起作用的原因,如果src='/sm-admin/plugins/jQuery/jquery-2.2.3.min.js'

,您的服务器将会很好地回复

现在src='../plugins/jQuery/jquery-2.2.3.min.js'正在工作b / c您的网页必须是从根上下文下面的1个文件夹提供的,即:/sm-admin/page/mypage.html..您只是间接引用根路径

我建议的解决方案:

  1. 使用/sm-admin前缀从根加载的所有资源。
    1. 将所有绝对路径更改为亲戚路径,即:将src='/plugins/jQuery/jquery-2.2.3.min.js'更改为src='plugins/jQuery/jquery-2.2.3.min.js',并在标题中为所有亲戚路径设置基本网址,即:<base href="/sm-admin/"/>。此解决方案的一个警告是,您的应用程序中的任何位置都使用相对路径,它们将相对于此基本路径。

答案 1 :(得分:0)

在您的index.html中,将$cfg['Servers'][$i]['host'] = 'localhost:3306'; 更改为 <allow-intent href="http://*/*" launch-external="yes"/> <allow-intent href="https://*/*" launch-external="yes"/>

这解决了我的问题。