WebPack系列:Webpack編譯的代碼如何在tomcat中使用時靜態資源路徑不對的問題如何解決

問題:javascript

    使用webpack+vue作前端,使用tomcat提供api,而後npm run build以後須要將編譯,生成以下文件:
|   index.html
\---appserver
    +---css
    |       app.9f4d9411ca2e49d41c43873d1ac872ea.css
    |       app.9f4d9411ca2e49d41c43873d1ac872ea.css.map
    |       
    +---img
    |       normalIcon.d79d340.png
    |       stationPower.80a1622.png
    |       stationTodayIncome.a3ee078.png
    |       
    \---js
            app.9d46b4ad872262b9a52e.js
            app.9d46b4ad872262b9a52e.js.map
            manifest.0c2bbe5e1f55a200d7ab.js
            manifest.0c2bbe5e1f55a200d7ab.js.map
            vendor.9d3b48e13b4021af14f8.js
            vendor.9d3b48e13b4021af14f8.js.map
 
    而後把這些內容拷貝到tomcat項目的webapp目錄下運行,沒法正常運行,老是提示找不到資源。tomcat項目的名字叫作appserver,訪問路徑爲: http://localhost:8080/appserver/index.html
 
分析:
    由於webpack編譯出來的文件都使用index.html文件以下,若是轉換爲絕對路徑,就是: http://localhost:8080/static/js/ manifest.228b9cf01733503725fb.js
  1. <!DOCTYPE html><html><head><metacharset=utf-8><metaname=HandheldFriendlycontent=true><metaname=viewportcontent="width=device-width,initial-scale=1,user-scalable=no">
  2. <metaname=apple-mobile-web-app-capablecontent=yes>
  3. <metaname=apple-mobile-web-app-status-bar-stylecontent=black>
  4. <title>huajie_webapp</title>
  5. <linkhref=/static/css/app.9f4d9411ca2e49d41c43873d1ac872ea.cssrel=stylesheet>
  6. </head>
  7. <body>
  8. <divid=app></div>
  9. <scriptsrc="http://api.map.baidu.com/api?v=2.0&ak=oeK86DZIYjG81FPqxcDFS5GfFZfWuZFw"></script>
  10. <scripttype=text/javascriptsrc=/static/js/manifest.228b9cf01733503725fb.js></script>
  11. <scripttype=text/javascriptsrc=/static/js/vendor.9d3b48e13b4021af14f8.js></script>
  12. <scripttype=text/javascriptsrc=/static/js/app.e2df972540803c0ad815.js></script>
  13. </body>
  14. </html>
 
而實際上咱們須要的是  http://localhost:8080/appserver/static/js/ manifest.228b9cf01733503725fb.js
因此如今是要想辦法讓他最終能夠拼湊出這樣的路徑。
 
 
解決方法:
    由於webpack編譯的時候默認把全部靜態資源放到了static目錄下, 那麼咱們能夠考慮經過修改配置文件,讓他放在名爲appserver目錄下,而後拷貝到tomcat項目的時候,直接把appserver裏面的內容拷貝到tomcat項目的webapp目錄下。
    修改webpack目錄下的config/index.js文件的以下內容,根據不一樣的tomcat項目名修改爲不一樣的名稱。
    
 
——————完——————
 
 



相關文章
相關標籤/搜索