Pasokan sumber daya statis default
Springboot memiliki beberapa direktori sumber daya statis default, yang dapat dikonfigurasi juga. Peta konfigurasi default /** peta ke /statis (atau /publik, /sumber daya, /meta-inf /sumber daya), dan metode konfigurasi khusus adalah sebagai berikut:
spring.mvc.static-path-pola =/** # Pola jalur yang digunakan untuk sumber daya statis.
Jika front-end perlu mengakses sumber daya statis default, harap perhatikan struktur direktori berikut:
└─ Sumber │ application.
Bagaimana cara merujuk sumber daya statis di atas di index.html?
Metode penulisan berikut:
<tautan rel = "stylesheet" type = "text/css" href = "/css/index.css" rel = "eksternal nofollow"> <script type = "text/javascript" src = "/js/index.js"> </script>
CATATAN: Peta konfigurasi default /** peta ke /statis (atau /publik, /sumber daya, /meta-inf /sumber daya)
Saat meminta /css/index.css, Spring MVC akan ditemukan di /Direktori /Direktori.
Jika dikonfigurasi sebagai /static/css/index.css, maka tidak ada direktori /statis di bawah beberapa direktori yang dikonfigurasi di atas, sehingga file sumber daya tidak akan ditemukan!
Jadi saat menulis lokasi sumber daya statis, jangan membawa nama direktori yang dipetakan (seperti/statis/,/publik/,/sumber daya/,/meta-inf/sumber daya/)!
Sumber Daya Statis Kustom
Informasi online mengatakan bahwa spesifikasi dapat ditentukan dalam file konfigurasi. Saya tidak menggunakan metode ini. Saya menggunakannya dengan menerapkan konfigurasi yang diperluas.
PS: Jelaskan bahwa dalam versi springboot 1.x, beberapa konfigurasi yang terkait dengan Spring MVC diperluas dengan mewarisi konfigurasi webmvCaUtoconfiguration, tetapi dalam versi 2.x, antarmuka WebMVcconfigurer secara langsung diimplementasikan untuk memperluas fungsi -fungsi terkait Spring MVC, seperti konfigurasi. Artikel ini, yang mencakup metode default seperti di dalam.
Cukup unggah kode:
@ConfigurationPublic kelas myWebAppConfigurer mengimplementasikan webmvcconfigurer {// event.share.image.dir =/data/share/image/@value ("$ {event.share.image.dir}") outputDir string pribadi; @Override public void addResourceHandlers (ResourceHandLerRegistry Registry) {Registry.AdResourceHandler ("/Share/Image/**"). AddResourcelocations ("File:"+OutputDir); }}Catatan: Latar belakang kode di atas adalah gambar yang diambil dari tempat lain secara dinamis. Itu tidak boleh ditempatkan di paket Jar Sringboot. Oleh karena itu, melalui konfigurasi di atas, Anda dapat secara langsung mengakses gambar di /data/share/image/a.jpg melalui http: //host/share/image/a.jpg. Jika file sumber daya statis tidak dinamis, itu juga di direktori sumber daya, hanya perlu menulisnya seperti ini:
Registry.addResourceHandler ("/Share/Image/**"). AddResourcelocations ("ClassPath:"+OutputDir); // ubah file ke classpathMengakses Sumber Daya Statis Melalui Kelas Alat Springboot
Sangat sederhana, kodenya adalah sebagai berikut:
Private Static Final String Background_Image = "Share/Background.jpg"; File File = new ClassPathResource (latar belakang_image) .getFile (); inputStream adalah = classpathResource baru (latar belakang_image) .getInputStream ();
Ternyata ada cara lain untuk menulisnya:
Private Static Final String Background_Image = "ClassPath: Share/Background.jpg"; File File = ResourceUtils.getFile (latar belakang_Image);
Tetapi dalam versi 2.x, yang berikut ini mungkin muncul tetapi pengecualian
java.io.filenotfoundException: sumber daya jalur kelas [saham/latar belakang.jpg] tidak dapat diselesaikan ke jalur file absolut karena tidak berada di sistem file: jar: file: /home/ubuntu/wxcs/calendar-api-1.0.0.jar!/boot-inf/class! /share/palground.jground.jar.jar!
Saya akan merekomendasikan cara pertama untuk menulisnya.