問題:以前,我們在使用SSM框架的時候,都是通過外置的tomcat進行部署,如果想訪問文件,直接拖到項目的根目錄下面即可。假如我們需要放一個apk文件,然后讓別人下載,只需將apk放到項目根目錄下面,瀏覽器通過http://ip:port/projectName/xx.apk即可下載。現在使用spring boot進行項目開發,由於springboot 內嵌了tomcat,為了方便部署,因此我們大多數情況下只需將項目打成jar包運行。這樣就存在一個問題,我們該如何將這個apk放到服務器上,別人通過瀏覽器進行下載呢?
一、springboot的項目結構
|———main |———java———代碼
|———src | |
| | |
| | |———resources———靜態資源配置
project | |———test
|———pom.xml
二、打成jar包后的結構
|———META-INF
| |——lib
project | |
|———BOOT-INF|
|——classes——(項目結構java下面的class文件和resources下面的文件)
三、classpath指的是哪兒
classpath顧名思義,就是class的路徑,打包前指的就是resources,打包后指的就是classes。
四、apk文件放在哪兒打包部署后可以正常訪問
springboot配置文件為我們提供了默認的靜態資源訪問路徑,當然我們也可以進行修改。默認的路徑為下面這四個地址,當我們想訪問靜態資源的時候會從上往下一個地址接一個地址的去找:
{
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
};
如果想要自定義的話,則在application.properties中設置
spring.resources.static-locations=自定義路徑
我們把apk放到以上任意一個文件夾中都可以正常訪問到。我最常做的是在resources下面建一個resources的文件夾,然后用http://ip:port/projectName/xx.apk去訪問。如下圖所示
這樣我們就能輕松實現瀏覽器訪問jar中的靜態資源了,而不用安裝tomcat,用war包的形式去運行項目咯。