2017-03-09 58 views
0

我试图将我的应用程序移植到Spring引导,并且对我来说事情正常。我面临着静态内容和contextPath的问题。我在application.properties上下文路径和静态内容| Spring Boot

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文件来处理它,但我无法找到这样的配置。可以点点我正确的方向。

回答

1

有2个因素在这个问题:你的Web应用程序和浏览器,所以我不认为这可以通过弹簧被控制,因为这与浏览器的行为做。

问题

在你的 '老' 的HTML文件版本的应用程序根上下文是/。这就是为什么src='/plugins/jQuery/jquery-2.2.3.min.js'加载没有任何问题。

现在,因为你的应用程序根上下文改为/sm-admin你的web应用程序将只能与路径前缀请求。这就是为什么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的所有资源。

或者

  • 更改所有绝对路径亲属路径,即:改变src='/plugins/jQuery/jquery-2.2.3.min.js'src='plugins/jQuery/jquery-2.2.3.min.js'并设置在头的基本URL所有亲属路径,即:<base href="/sm-admin/"/>。这个解决方案的一个警告是,你的应用程序中的任何地方都使用相对路径,它们将相对于此基本路径变得相对。
  • +0

    同意,我可以继续前进任何一种方法,我一直在寻找,如果春季启动有办法处理静态内容的上下文 –

    +0

    是的,这将是一个很好的功能,但想象春天会如何处理它,要么必须扫描资源并动态修复它们,要么必须任意重新路由根请求。 – artemisian

    相关问题