1. 程式人生 > >springboot、springcloud之靜態資源路徑的配置

springboot、springcloud之靜態資源路徑的配置

在Springboot中預設的靜態資源路徑有:classpath:/METAINF/resources/classpath:/resources/classpath:/static/

classpath:/public/,從這裡可以看出這裡的靜態資源路徑都是在classpath中(也就是在專案路徑下指定的這幾個資料夾)

試想這樣一種情況:一個網站有檔案上傳檔案的功能,如果被上傳的檔案放在上述的那些資料夾中會有怎樣的後果?

  • 網站資料與程式程式碼不能有效分離;
  • 當專案被打包成一個.jar檔案部署時,再將上傳的檔案放到這個.jar檔案中是有多麼低的效率;
  • 網站資料的備份將會很痛苦。

此時可能最佳的解決辦法是將靜態資源路徑設定到磁碟的基本個目錄。

Springboot中可以直接在配置檔案中覆蓋預設的靜態資源路徑的配置資訊:

  • application.properties配置檔案如下:
server.port=1122

web.upload-path=D:/temp/study13/

spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\
  classpath:/static/,classpath:/public/,file:${web.upload-path}

注意:

web.upload-path這個屬於自定義的屬性,指定了一個路徑,注意要以/結尾;

spring.mvc.static-path-pattern=/**表示所有的訪問都經過靜態資源路徑;

spring.resources.static-locations在這裡配置靜態資源路徑,前面說了這裡的配置是覆蓋預設配置,所以需要將預設的也加上否則staticpublic等這些路徑將不能被當作靜態資源路徑,在這個最末尾的file:${web.upload-path}之所有要加file:是因為指定的是一個具體的硬碟路徑,其他的使用classpath指的是系統環境變數

  • 編寫測試類上傳檔案
package com.zslin;

import
org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.util.FileCopyUtils; import java.io.File; /** * Created by 鍾述林 [email protected] on 2016/10/24 0:44. */ @SpringBootTest @RunWith(SpringRunner.class) public class FileTest { @Value("${web.upload-path}") private String path; /** 檔案上傳測試 */ @Test public void uploadTest() throws Exception { File f = new File("D:/pic.jpg"); FileCopyUtils.copy(f, new File(path+"/1.jpg")); } }

注意:這裡將D:/pic.jpg上傳到配置的靜態資源路徑下,下面再寫一個測試方法來遍歷此路徑下的所有檔案。

@Test
public void listFilesTest() {
    File file = new File(path);
    for(File f : file.listFiles()) {
        System.out.println("fileName : "+f.getName());
    }
}

可以到得結果:

fileName : 1.jpg

說明檔案已上傳成功,靜態資源路徑也配置成功。

  • 瀏覽器方式驗證

由於前面已經在靜態資源路徑中上傳了一個名為1.jpg的圖片,也使用server.port=1122設定了埠號為1122,所以可以通過瀏覽器開啟:http://localhost:1122/1.jpg訪問到剛剛上傳的圖片。


相關推薦

springbootspringcloud靜態資源路徑配置

在Springboot中預設的靜態資源路徑有:classpath:/METAINF/resources/,classpath:/resources/,classpath:/static/, classpath:/public/,從這裡可以看出這裡的靜態資源路徑都是在classpath中(也就是在專案路徑

Springboot 靜態資源路徑配置

在Springboot中預設的靜態資源路徑有:classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,從這裡可以看出這裡的靜態資源路徑都是在classpath中(也就是在專案路徑下指

Springboot 靜態資源路徑配置的兩種方法

參考學習: http://www.zslin.com/web/article/detail/23 http://blog.csdn.net/catoop/article/details/50501706 訴求:Spring Boot 預設為我們提供了靜態資源處理,而有時我們需要自定義

十二SpringCloudSpring Cloud Bus配置中心

一、簡介 ConfigServer使用了Spring Cloud Bus之後(引入Spring Cloud Bus用來操作訊息佇列),會對外提供一個介面,叫做bus-refresh,遠端git訪問這個介面ConfigServer就會把配置更新的資訊傳送到訊息佇列(RabbitMQ)裡面,Co

SpringBoot——web開發靜態資源引入

1、雖說SpringBoot為我們提供了很多可以放置靜態資源的資料夾,但靜態頁面(html)最好放在templates資料夾下,因為放在該資料夾下才能得到模板引擎的解析,放在其他靜態資原始檔夾下則不能得到模板引擎的解析,這樣就無法使用模板引擎的強大功能了 2、假如在publ

SpringBoot——web開發靜態資源對映

1、通過/webjars/**請求靜態資源 SpringMVC的相關配置都在WebMvcAutoConfiguration類中,在該類中有一處新增資源對映: public void addResourceHandlers(ResourceHandlerRegistry r

springmvcspringboot靜態資源訪問配置

ati 無法 ssp simple test javascrip spa handle rop 如何訪問項目中的靜態資源? 一.springmvc springmvc中訪問靜態資源,如果DispatcherServlet攔截的為"",那麽靜態資源的訪問也會交給Dispa

SpringBoot頁面跳轉訪問cssjs等靜態資源引用無效解決(六)

目錄 一、頁面跳轉 二、情況說明 三、 問題解決方案 1、 引入thymeleaf的依賴包 2、 專案路徑 注意 (1) 頁面引用外部靜態資源的方式 (2) 核心解決方案 一、頁面跳轉 如果你還沒有實現頁面跳轉,推薦閱讀:SpringBoot跳轉渲染頁

SpringBoot學習路】10.Web開發靜態資源的對映規則

轉載宣告:商業轉載請聯絡作者獲得授權,非商業轉載請註明出處.原文來自 © 呆萌鍾【SpringBoot學習之路】10.Web開發之靜態資源的對映規則  簡介 使用SpringBoot 建立SpringBoot應用,選中我們需要的模組; S

十一SpringCloud統一配置中心

一、簡介 1、為什麼需要統一配置中心 不方便維護(多人修改配置檔案,容易出現問題) 配置內容安全與許可權(隔離配置檔案,不對開發公開) 更新配置專案需重啟(更新配置檔案重啟專案太麻煩了) 2、統一配置中心總體架構 將配置放在遠端git上,這樣版本控制起來會比

使用Java類載入SpringBootSpringCloud配置檔案

我們都知道平常在使用SpringBoot和SpringCloud的時候,如果需要載入一兩個配置檔案的話我們通常使用@Value("${屬性名稱}")註解去載入。但是如果配置檔案屬性特別多的時候使用這種方式就顯得特別的不友好了。 比如說,我們要載入下方這個名為applicatio

vue專案webpack打包靜態資源路徑不準確

文章有點長,希望能夠閱讀下去,有所幫助。 問題 將打包好的專案部署到伺服器,發現報錯說圖片找不到。 靜態資源如js訪問不到 分析並且解決問題 明確一點的就是,看到報錯404,找不到靜態資源,很明顯,路徑錯誤了。  靜態資源找不到如js檔案 資源打包路徑有誤,

web.xml中配置訪問資源URL/時無法訪問.html.jsp.js.css等靜態資源時的解決方案

在web應用中,我們在web.xml配置URL路徑問題時,經常這樣配置:<servlet-mapping> <servlet-name>spring-MVC</servlet-name> <url-pattern>/<

關於web專案靜態資源路徑action路徑的控制問題

#新浪微博搬家# (2017-04-19 13:41:32) 今天web專案訪問action的時候突然出現這個問題,action返回一個路徑,自動加上了前後綴, 如圖: 在spring中為

springboot maven資源路徑配置 resource路徑配置, 解決mybatis的xml放在java路徑而沒有放在resource路徑下報錯的問題

我是這樣配置的 <build> <!--resources配置解決mybatis 的mapperXml配置在java路徑不被掃描的問題 --> <resources>

用node.js express設置路徑後 子路徑下的頁面訪問靜態資源路徑出問題

ref gin images ejs title use func tle public 在routes/news_mian.js 設置了訪問news_main.html 的路徑 ‘/‘,通知設置一個訪問news-page.html的子路徑‘/newspage‘子路徑。但是

CSS及HTMLjs中的資源路徑問題

stat 文件中 bsp ng- 層級 png 目的 指令 php 路徑 分為相對路徑和絕對路徑 一、相對路徑。 相對於文件本身的路徑。 用 ./ 表示同一文件夾下的兄弟文件。 用../ 表示所處文件夾的父文件夾中的文件。 二、絕對路徑。 本機絕對路徑是 例如 E:\ph

springbootspringcloud學習記錄

images tail 學習 理解 資源 mage for details sch 1、方誌朋的csdn博客,文章篇幅少比較容易理解 springboot: csdn博客地址列表:http://blog.csdn.net/forezp/article/category/68

SpringBoot簡化開發熱部署啟動配置

保存 gin 簡化 cti 路徑 ons frame 體驗 大腦 作者:銹逗的大腦原文鏈接:http://www.cnblogs.com/ocean-yh/p/8352032.html 討論QQ群:151230186 Spring Boot 開發時的熱部署配置

靜態路徑配置

strong ann .com linux共享 tor rect 保存 libraries object 存在問題:   編譯高博《視覺SLAM十四講》的第六講g2o_curve_fitting時,從thirdparty安裝了g2o後,運行程序出現:   error whi