springboot開發時候,通常將文件放在resources目錄,可是發佈後想修訂文件或是開發時候修改了文件內容通常需從新打包或者重啓動才能達到效果;web
將資源文件打包入jar包,訪問的是編譯的結果,因此運行後訪問的不是源碼目錄中的文件。導致修改效果要從新編譯才能生效。通常能夠妥協採用自定編譯來解決,可是仍然有發佈後沒法修改資源的困擾。spring
使用springboot從新定義靜態資源的目錄,達到訪問jar包外部目錄的效果,加上user.dir的使用,能夠讓jar包訪問運行jar包的當前目錄中的指定目錄的靜態文件。主要使用springboot的攔截器方法。跨域
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class clientConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry){ registry.addResourceHandler("/res/**").addResourceLocations("file:"+System.getProperty("user.dir")+"/res/"); // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**")//設置容許跨域的路徑 .allowedOrigins("*")//設置容許跨域請求的域名 .allowCredentials(true)//是否容許證書 再也不默認開啓 .allowedMethods("GET", "POST", "PUT", "DELETE")//設置容許的方法 .maxAge(3600);//跨域容許時間 } }