後端框架與API 開發(2-1) – 靜態資源下載 Bootstrap

閱讀時間約 4 分鐘

使用靜態檔案下載 Bootstrap 的原因主要有以下幾點:

  1. 客製化:當你下載了 Bootstrap 的靜態檔案,你可以根據自己的需求來修改這些檔案。例如,你可以改變預設的顏色、字型大小、間距等,使其更符合你的網站風格。這是直接使用 CDN 所無法做到的。
  2. 效能優化:如果你的網站只使用 Bootstrap 的部分功能,那麼你可以刪除不需要的 CSS 和 JavaScript 代碼,這樣可以減少檔案的大小,提高網站的加載速度。
  3. 離線開發:如果你下載了 Bootstrap 的靜態檔案並將其存放在本地,那麼你就可以在沒有網路連接的情況下進行開發。
  4. 版本控制:下載靜態檔案可以讓你控制使用的 Bootstrap 版本。如果 Bootstrap 更新了新版本,你可以選擇是否更新你的檔案,而不會被迫使用最新的版本。

為什麼不透過 npm 下載 Bootstrap的原因主要有以下幾點:

  1. 簡單性:直接從官網下載 Bootstrap 或使用 CDN 是最簡單的方法。你不需要設置任何額外的工具或配置,只需要將下載的檔案放入你的專案中,或者在你的 HTML 檔案中添加一個鏈接到 CDN。
  2. 前端使用:如你所說,Node.js 是後端技術,而 Bootstrap 主要是用於前端。如果你沒有使用像 webpack 這樣的模組打包工具,你將無法直接在前端使用透過 npm 下載的 Bootstrap。
  3. 學習目的:對於初學者來說,直接下載 Bootstrap 或使用 CDN 可以讓他們更快地開始使用 Bootstrap,而不需要先學習如何使用 npm 或 webpack。

下載 Bootstrap的步驟:

  • 在根目錄下開一個public 資料夾,在 public 裡再建立分別名為 stylesheets 和 javascripts 的資料夾,將在 HTML 中使用到的 CSS、JavaScript 或者圖檔都放進去資料夾以方便管理。
raw-image
  • 下載 Bootstrap 檔案:先到 Bootstrap 的官方網站點選 Download 下載 Bootstrap。
raw-image
  • 解壓縮後,你會看到裡面一共有兩個資料夾,分別是 css 和 js:
raw-image
  • 在 CSS 資料夾中,我們只需要使用 bootstrap.css 和 bootstrap.css.map 這兩支檔案,把它複製貼到剛剛在專案中所建立的 stylesheets 資料夾中
raw-image
  • 在解壓縮的 JS 資料夾中,我們只需要使用 bootstrap.js 和 bootstrap.js.map 這兩支檔案把它複製貼到所建立的 javascripts 資料夾中:
raw-image
  • 下載 Bootstrap 使用到檔案 -Popper.js,因為這 popper 是 JavaScript 檔案,所以放到專案內的 JavaScript 資料夾中。
  • 點此下載 Popper.js 和 Popper.js.map -(Popper.js 官網
raw-image
  • 專案架構會像這樣:
raw-image

套入  Bootstrap的步驟:

  • 啟動伺服器
$ nodemon app.js //或是
$ npm run dev
  • 載入靜態檔案
  1. 打開編輯器中的 views/layouts/main.handlebars 這支檔案,只需要透過 <link> 這個 HTML 標籤,把載入 Bootstrap CSS 檔案的部分寫在 <head> </head>這個區塊的最後面。
<!-- ./views/layouts/main.handlebars -->
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... -->

<!-- link css files here -->
<link rel="stylesheet" href="/stylesheets/bootstrap.css">
</head>
<body>
<!-- ... -->
</body>
</html>
  1. 透過 <script> 這個 HTML 標籤,載入 popper.js, bootstrap.js 這兩支檔案。載入時需要留意順序, popper.js 一定要放在 Bootstrap 之前。
<!-- ./views/layouts/main.handlebars -->
<!DOCTYPE html>
<html lang="en">
<head>
<!-- ... -->
<!-- link css files here -->
<link rel="stylesheet" href="/stylesheets/bootstrap.css">
</head>
<body>
<!-- ... -->

<!-- include javascript files here -->
<script src="/javascripts/popper.js"></script>
<script src="/javascripts/bootstrap.js"></script>

</body>
</html>
  • 設定 Express 路由,告訴 Express 靜態檔案的資料夾位置。
// setting static files
app.use(express.static('public'))
  • 套用CSS後的成果範例:
raw-image


    全端網頁開發專業知識分享
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    ※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
    ※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
    ※ 補充說明: ※ npm 常用指令: ◦ npm init–y:快速初始化一個新的 Node.js 並建立一個 package.json 文件的命令。 ◦ npm info 套件名稱 version:快速查詢指定 npm 套件的最新版本號。 ◦ npm install套件名稱:用來安裝
    ※ 轉接器模式 定義: 轉接器模式是一種結構型設計模式(有時也被稱為wrapper或裝飾模式),用於將一個類(class)的接口轉換成客戶端所期望的另一個接口。這使得原本因接口不匹配而無法工作的類(class)可以一起工作,讓接口不兼容的類別能夠合作無間。 ※ 數字到字符的轉換過程範例 /
    ※ 生產者和消費者模式 定義: 生產者和消費者在同一時間內共同存取某一個資料空間。生產者負責生成數據並將其放入共享空間,消費者負責從共享空間中取走數據進行處理。兩者之間互不相干,也不須互相知道對方的存在。 共同存取資料空間:生產者和消費者共享同一個資料空間。這個空間通常是緩衝區或隊列,用於在它
    ※ 觀察者模式 定義: 觀察者模式(Observer Pattern)是一種設計模式,涉及兩個主要角色:觀察者(Observers)和被觀察者(Subject)。在這種模式中,一群觀察者訂閱並觀察某個被觀察的對象。當被觀察者的狀態發生改變時,它會通知所有觀察者,讓他們知曉並作出相應的反應。這種模
    ※ 視圖模板 視圖模板(View Templates) 是在 MVC 架構中負責展示數據的 HTML 文件,包含模板語法,用於在渲染時插入實際數據。它們的主要目的是分離數據與展示邏輯,讓代碼更加模塊化和易於維護。 視圖模板設計和使用的核心理念,就是「重複的事情不要重複做、效益最大化、有效利用資源
    ※ 靜態資源回傳 ※ 什麼是靜態資源: 定義:是指事先準備好的資源,這些資源在伺服器上是靜態的、不會隨著每個請求而改變。 資源通常包括: 靜態 HTML 文件。 CSS。 圖像(Image)。 Video。 字體文件:google fonts。 favicon:網頁名稱旁邊的ico
    ※ 補充說明: ※ npm 常用指令: ◦ npm init–y:快速初始化一個新的 Node.js 並建立一個 package.json 文件的命令。 ◦ npm info 套件名稱 version:快速查詢指定 npm 套件的最新版本號。 ◦ npm install套件名稱:用來安裝
    ※ 轉接器模式 定義: 轉接器模式是一種結構型設計模式(有時也被稱為wrapper或裝飾模式),用於將一個類(class)的接口轉換成客戶端所期望的另一個接口。這使得原本因接口不匹配而無法工作的類(class)可以一起工作,讓接口不兼容的類別能夠合作無間。 ※ 數字到字符的轉換過程範例 /
    ※ 生產者和消費者模式 定義: 生產者和消費者在同一時間內共同存取某一個資料空間。生產者負責生成數據並將其放入共享空間,消費者負責從共享空間中取走數據進行處理。兩者之間互不相干,也不須互相知道對方的存在。 共同存取資料空間:生產者和消費者共享同一個資料空間。這個空間通常是緩衝區或隊列,用於在它
    ※ 觀察者模式 定義: 觀察者模式(Observer Pattern)是一種設計模式,涉及兩個主要角色:觀察者(Observers)和被觀察者(Subject)。在這種模式中,一群觀察者訂閱並觀察某個被觀察的對象。當被觀察者的狀態發生改變時,它會通知所有觀察者,讓他們知曉並作出相應的反應。這種模
    你可能也想看
    Google News 追蹤
    Thumbnail
    CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
    Thumbnail
    自訂元件生成位置顧名思義就是可以指定部分HTML區塊渲染在特定的畫面上,即使在不同組件也能把A組件內的部分畫面,展現在B組件上,以下方程式舉例。
    Thumbnail
    CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
    Thumbnail
    軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
    Thumbnail
    社群模板讓人好頭痛,各種尺寸樣樣來,好複雜!本篇文章直接讓你下載所有尺寸模板,只要看這一篇就可以!
    介紹 大家第一次聽到,static 肯定很陌生。簡單來說,這個東西就是拿來存放一些我們經常會用到的檔案,比方說: CSS、JS、Image、Audio、Video...... 只要是網頁上可能會用到的檔案,我們基本上都會存在 static 當中,方便我們可以在不同路徑中,快速的存取這些檔案
    Thumbnail
    當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
    Thumbnail
    前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
    Thumbnail
    背景(background)是 CSS 中最常用的功能之一,本文將介紹如何使用 CSS 來設定網頁背景,讓你的網站更加美觀。
    Thumbnail
    如何透過 CSS 來美化和增強文本的可讀性,對於提升用戶體驗至關重要。本文將介紹如何使用 CSS 來處理網頁上的文本,包括字型設定、文本排列、裝飾等多方面。
    Thumbnail
    CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
    Thumbnail
    自訂元件生成位置顧名思義就是可以指定部分HTML區塊渲染在特定的畫面上,即使在不同組件也能把A組件內的部分畫面,展現在B組件上,以下方程式舉例。
    Thumbnail
    CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
    Thumbnail
    軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
    Thumbnail
    社群模板讓人好頭痛,各種尺寸樣樣來,好複雜!本篇文章直接讓你下載所有尺寸模板,只要看這一篇就可以!
    介紹 大家第一次聽到,static 肯定很陌生。簡單來說,這個東西就是拿來存放一些我們經常會用到的檔案,比方說: CSS、JS、Image、Audio、Video...... 只要是網頁上可能會用到的檔案,我們基本上都會存在 static 當中,方便我們可以在不同路徑中,快速的存取這些檔案
    Thumbnail
    當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
    Thumbnail
    前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
    Thumbnail
    背景(background)是 CSS 中最常用的功能之一,本文將介紹如何使用 CSS 來設定網頁背景,讓你的網站更加美觀。
    Thumbnail
    如何透過 CSS 來美化和增強文本的可讀性,對於提升用戶體驗至關重要。本文將介紹如何使用 CSS 來處理網頁上的文本,包括字型設定、文本排列、裝飾等多方面。