前言
上一篇提到了如何把靜態資源加入到以 Angular CLI 建立的專案內,但這樣子是不夠的。我們希望能夠把這個網頁版型加入到 Angular 內,以 Component 的形式被管理,那該怎麼做呢?
觀察 index.html
打開 index.html ,整份網頁大致上可以拆分成 head 區塊以及 body 區塊。head 區塊是沒辦法拆成 Component 的,只有在 body 區塊才可以拆 Component 。
index.html
1 |
|
我用的網頁版型 HTML 部分還蠻多的,就不貼上來了。
也就是說:
- 可以直接將靜態網頁的版型 head 部分直接複製貼上到 index.html
- 把網頁版型中的 body 區塊貼到 AppComponent 的 HTML Template 內
了解該怎麼做之後,我們就動手吧!
head 部分的處理
這邊只有一點要注意,在 index.html 中有一個標籤很特別 <base>
。
base 標籤是用來控制網頁內的其他超連結,而這個標籤在這裡的用意是規定一個基準的 Url 路徑,也就是之後這張網頁內的其他超連結的基準都是從 / 開始找起。
所以我們把複製的內容放到 base 標籤下方,像這樣:
1 |
|
body 部分的處理
這部分因為 HTML 很多,所以就不貼上來了,將網頁版型中的 body 區塊貼到 AppComponent 的 HTML Template 內。
這邊有個小技巧,可以按下 Ctrl + E
透過搜尋的方式快速找到檔案,找到後就整個取代貼上吧。
實際執行看看
執行 npm start
命令,觀察實際在瀏覽器上呈現的情形。
但畫面上空空如也,為什麼?
打開開發者工具發現一段錯誤:
在 Angular 中,只能使用 HTML5 規範的 HTML 標籤,而我使用的這個版型用到的這個 hgroup 標籤並不符合 HTML5 規範。
處理方式有很多種,其中最簡單的就是將其改成 div 標籤即可。
關於 hgroup 標籤的補充:
早期在 HTML5 規格尚未發佈正式版的時候,當時是有 hgroup 元素的,但 HTML5 工作小組在 2013/4/2 的一次會議結論中決定從規格中移除 hgroup 元素,因此請大家不要再用這個 hgroup 元素。
這樣就搞定了!
小結
這樣我們就成功地把一份網頁版型加入到 Angular 內並且以 Component 的方式管理,所以可以到上一篇提到的 angular.json 檔案內把之前加入到 assets
內的 src/blog-index.html
給移除囉,因為已經用不到了。