一、使用SpringBoot2.x
版本,在开发的时候不作多余配置,启动后直接ip:port/
就是根路径了。但在tomcat中部署的时候若是存在多个项目,每一个项目都用本身的名称,那么实际访问路径就是ip:port/项目名称/
了。css
二、若是没有其余引用,controller
里的requestMapping
也不须要添加任何项目前缀,开发和部署都能正常运行,完美。但是若是在html
页面引用了静态文件,这个静态文件的路径应该怎么写呢?若是写成/css/index.css
在本地测试能够但部署就不行。若是写成/项目名称/css/index.css
效果正好相反。若是把路径最前面的/
去掉那就更不可行了,由于一般这些引用是写在一个通用模块供全部页面导入的,去掉以后实际路径是随页面路径不一样而不一样的。html
三、这只是静态文件引用路径问题,若是页面中有请求接口的代码的话,那么接口地址到底加不加项目名称前缀也很难兼顾开发和部署。web
四、因此妥协的作法就是以部署环境为准,来作最少的配置变动,在开发和部署时只要变动这些配置便可。那么最少的配置变动究竟是有多少呢?tomcat
五、第一,部署环境有项目名称,因此咱们的静态文件路径和接口路径都添加/项目名称这样的前缀。第二,在配置文件中设置server.servlet.context-path=/项目名称
。第三,在static
目录下新建一个项目名称的目录,把本来在static
下的全部静态文件拷贝一份到这个目录中,至关于两份静态文件一份给本地测试用,一份给部署时用。至此咱们本地测试运行的话,就和部署时一致了。微信
六、那么部署时呢?部署时貌似能够不作任何变更。若是你勤快的话,上面第三步多出来的一份静态文件能够删除,若是还在测试中的话建议保留,这样开发和部署效率就会高一些。app