基於webpack實現多html頁面開發框架八 html引入圖片打包和公共頁面模塊復用

来源:https://www.cnblogs.com/lisong/archive/2019/12/13/12034890.html
-Advertisement-
Play Games

一、解決什麼問題 1、html中img引入的圖片地址沒有被替換,找不到圖片 2、html公共部分復用問題,如頭部、底部、浮動層等 二、html中img引入圖片問題解決 1、在index.html插入img,引用圖片<img src="../../assets/img/test.jpeg"> 2、np ...


一、解決什麼問題

  1、html中img引入的圖片地址沒有被替換,找不到圖片

  2、html公共部分復用問題,如頭部、底部、浮動層等

二、html中img引入圖片問題解決

  1、在index.html插入img,引用圖片<img src="../../assets/img/test.jpeg">

  2、npm run dev運行結果如下:    

 

    因為圖片地址沒有被替換為打包後的地址, 所以找不到圖片

    3、需要使用的包:html-withimg-loader,安裝命令:npm install html-withimg-loader --save-dev

     在module的rules增加loader配置,配置如下:

1  {
2                 test: /\.html$/,
3                 // html中的img標簽
4                 use: ["html-withimg-loader"]
5 },

   4、重新運行項目,效果如下:

    

 

    html中圖片地址被替換為打包後的地址, 圖片正常顯示     

三、html公共模塊復用問題解決

  1、比如我們現在有公共頭部header.html、bottom.html如何引用到各個頁面,我們先在項目中把文件建出來,如下:

    

 

     新建layout文件夾,裡面包含header.html和bottom.html,兩個文件的內容可以隨便寫下額

  2、以前我們只能把內容來回拷貝,修改的時候修改N處,非常麻煩,還容易少改幾處

  3、現在我們怎樣引用,方式如下:

    

 

     只需要#include引用文件的相對地址,即可把文件引用進來,npm run dev運行效果如下:

    

 

     3、為什麼#include就可以實現呢,也是受益於html-withimg-loader,當這個loader運行的時候,遇到#include,會把頁面的內容可拷貝到對應位置

三、html公共模塊的js和樣式文件寫在什麼位置

    1、pages下公共模塊文件夾不能包含.js文件和樣式文件,因為有.js文件會走打包流程,會生成頁面,而我們公共模塊是不需要生成頁面的。

    2、可以運行npm run build,查看是否生成了layout,效果如下:

      

 

      2、公共模塊的js、css應該放在那裡,js放到assets/js,css放到assets/css,如下:

      

 

       header.js和header.scss在各業務頁面的.js文件的頭部引入就可以使用,如下:

      

 

       截圖:在首頁的index.js文件中引入了common.scss和header.js,修改了header.html中文本的樣式,輸出了header字元,運行效果如下:

      

 

 

 

 

  源碼地址:https://github.com/James-14/webpack4_multi_page_demo

  寫的不對之處請大家批評指正~~~~!!!!!! 

 

  文章原創,轉載請註明出處,謝謝!

      

 

      

        

    

    

  

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 項目結構:一個視窗只有一個項目,項目 叫 Project 代表一個workspace 一個項目的結構跟eclipse區別還是蠻大的: 首先看APP結構:app放的其實就是 java文件和資源文件 切換 目錄結構 比如切換到project界面 1、Studio中有Project和Module的概念,前 ...
  • 1.在/data/app下以報名為文件夾名新建文件夾 APK包存放在這裡 以及lib文件 存放so 2./data/dalvik cache 存放dex dex是dalvik虛擬機可執行文件 3./data/data/ 存放應用數據 剛開始沒什麼數據 打開apk後資源釋放 數據變多 4./data/ ...
  • jTopo是什麼? jTopo(Javascript Topology library)是一款完全基於HTML5 Canvas的關係、拓撲圖形化界面開發工具包。 jTopo關註於數據的圖形展示,它是面向開發人員的,需要進行二次開發。 使用jTopo很簡單,可以快速創建一些關係圖、拓撲等相關圖形化的展 ...
  • 前言 最近在給自己的腳手架項目轉到TypeScript時,遇到了一些麻煩。 項目之前採用的是react + react redux + redux thunk + redux actions +redux promise的體系。 當項目轉TypeScript時,react和react redux這種 ...
  • Math對象 開平方:sqrt 絕對值:abs π:PI x的y次方:pow 四捨五入取整:round 向下取整:floor 向上取整:ceil 最大值:max 最小值: min 隨機數:random 日期對象 獲取當前時間:Date() 獲取年:getFullYear 獲取月:getMonth 獲 ...
  • 本人近期接到一個天大的“好消息”:zxbc項目某些客戶為保險業等種種原因要支持IE…… 2013年,ES6草案凍結,2015年6月,ES6正式通過,成為國際標準。都9102啦,Chrome還好啦,升級到最新版本,大部分ES6還是ok的,但是萬惡之源IE呢?作為一個前端開發者,相容萬惡的IE,頓時,胸 ...
  • 首先要明白什麼是 AJAX ? AJAX = 非同步 JavaScript 和 XML。 AJAX 是一種用於創建快速動態網頁的技術。 通過在後臺與伺服器進行少量數據交換,AJAX 可以使網頁實現非同步更新。這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。 傳統的網頁(不使用 AJAX ...
  • 最近在公司學習到ht編輯器的使用,關於使用方法上總結了一下,避免入坑。ht是做大屏數據可視化比較好的一款軟體,不過多介紹,官網上有具體使用方法和展示樣例,這裡我整理一下我用的最多的功能。##1、如何將HT編輯器生成的圖紙json問價嵌入到C#解決方案中?有兩種方式:(1)以本地文件的方式讀取(2)發 ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...