某些頁面須要放置一些靜態圖片,按照Angular目錄結構,應該放到/src/assets
目錄下,例若有文件/src/assets/img/menu_a.svg
,在頁面的html模板中這樣引用html
<img src="/assets/img/menu_a.svg" alt="">
在本地測試(ng serve -o
)中,在http://localhost:4200
上能夠正常顯示圖片。前端
但前端項目和後臺總體打包部署到Tomcat後,發現圖片不能正常顯示。查看發現圖片的連接爲http://192.168.0.23:8085/assets/img/menu_a.svg
,而Angular前端被放在路徑http://192.168.0.23:8085/fr/
上。圖片路徑應該是前端構建
http://192.168.0.23:8085/fr/assets/img/menu_a.svg
解決方法:svg
1.前端構建時設置參數 --baseHref
測試
ng build --prod --outputHashing=all --outputPath=../public/dist --baseHref=/fr/ --build-optimizer
--baseHref會使ng建立index.html的時候,添加上base標籤ui
<base href="/fr/">
由於Angular是單頁模式,因此全部頁面和組件都放置在index.html內,使用相同的基礎路徑。url
2.把assets目錄下的文件的url改成./assets
,如code
<img src="./assets/img/menu_a.svg" alt="">
這樣就能夠正確顯示圖片。htm
發佈於 13:10圖片