靜態網站部署:如何通過GitHub免費部署一個靜態網站

GitHub提供的免費靜態網站托管服務可以無需擔心昂貴的服務器費用和復雜的設置步驟,本篇文章中將一步步解如何通過GitHub免費部署一個靜態網站,幫助大家將創意和作品快速展現給世界。

目錄

了解基礎情況

創建基礎站點

在線調試站點

前端項目部署

部署存儲倉庫

取消刪除站點

設置404站點

了解基礎情況

GitHub Pages是GitHub提供的一項服務,允許用戶將靜態網頁托管在GitHub上,用戶可以免費托管HTML、CSS、JavaScript文件快速部署網站,它是GitHub針對開源項目、個人博客、作品集等靜態網站提供的托管平臺,完全免費且支持自定義域名,使用GitHub免費搭建靜態網站,需要提前了解一下使用它的前提及其一些限制,具體詳情可以參考官方文檔:地址?,這里不再過多贅述:

從上面官方文檔給出的限制來看,GitHub Pages提供免費托管適合個人開發者、小項目或非盈利性項目,靜態網站直接托管在GitHub上無需自己配置和維護服務器,但是其也有一些缺點:

1)僅支持靜態網站:只能托管靜態網頁無法直接支持后端應用或動態內容,如果需要數據庫、服務器端處理或動態功能,GitHub Pages不是合適的選擇

2)存儲限制:每個倉庫的文件大小限制為100MB且每個用戶有一定的帶寬限制,因此對于大文件或高流量的網站可能不太適用

3)缺少數據庫支持:如果項目需要動態數據存儲(例如用戶提交表單、評論功能等),GitHub Pages并不提供數據庫支持

4)需要手動更新:每次修改和更新網站內容都需要通過Git提交并推送更新,可能不如一些拖拽式網站構建平臺(如 Wix、WordPress)方便

5)功能限制:盡管支持Jekyll和一些靜態生成器,但相對于其他托管平臺GitHub Pages的自定義和擴展功能仍然較為有限,尤其是當需要復雜功能時

這些缺點決定了GitHub Pages更適用于簡單的個人網站、項目展示和博客而不適合需要復雜后臺處理的應用,總的來說GitHub Pages提供了一個簡單、免費的平臺幫助開發者和創作者快速部署和管理靜態網站,如果你的需求是展示項目、博客或者個人作品集,GitHub Pages是一個理想的選擇,接下來我們開始講解如何部署GitHub Pages。

創建基礎站點

在創建基礎站點之前,我默認你已經創建好GitHub賬戶了,如果沒有自行訪問站點進行注冊即可,注冊完成之后,點擊左上角的新建存儲庫按鈕:

接下來輸入倉庫的名稱以及描述(可選),如果要創建用戶或組織站點則存儲庫必須命名為 <user>.github.io或<organization>.github.io,如果你的用戶或組織名稱包含大寫字母,則添加的必須小寫字母,這里我就輸入名稱進行演示,如下輸入完名稱之后點擊創建存儲庫即可:

創建完成之后我們點擊上傳已經存在的文件:

然后將下面的index.html文件拖到上傳,上傳完成點擊提交即可:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.github {color: red;}</style>
</head>
<body><div class="github">hello github pages</div>
</body>
</html>

上傳完成之后,我們點擊設置按鈕找到Pages選項,然后設置我們當前GitHub Pages的分支,在這里我們調整設置了main分支,然后點擊Save保存,

然后等待一會刷新一下頁面就可以看到我們的站點部署已經成功,然后訪問我們的站點就可以看到我們上傳的index.html的內容已經被成功的展示在瀏覽器界面上了:

在線調試站點

我們可以點擊代碼的Code按鈕,然后選擇Codespaces打開代碼空間,如下所示:

打開之后就給我們展示了一個vscode編輯器的內容,這個編輯器就相當于一臺服務器, 當我們修改代碼之后可以點擊編輯器的左側分支提交按鈕,修改代碼然后輸入描述點擊提交分支即可:

提交完成回到Code選項可以看到我們的代碼修改已經成功被提交上來了:

等待一會刷頁面之后就可以看到我們的修改的內容也已經同步到站點上了:

前端項目部署

如果想設置Webpack或Vite構建的項目打包部署到GitHub站點上的話,需要考慮一下對資源文件的調用設置,確保文件能夠準確的被調用,其處理方法如下所示:

webpack:如果是webpack項目進行打包的話,需要在package.json中添加如下屬性,屬性值就是我們創建好的GitHub項目名稱:

vite:如果是vite項目進行打包的話,需要在package.json中添加如下的打包命令設置,我們在vite build命令后面添加 --base=/項目名稱 即可,如下所示:

可以看到打包后的文件內容,都已經在靜態資源目錄下面添加了我們的項目名稱:

接下來我們將打包好的靜態資源目錄上傳到剛剛創建的GitHub倉庫當中,如下所示:

然后我們稍微等待一會,等待站點的代碼進行更新,過了一會刷新站點之后可以看到我們的站點內容已經變成我們打包好的站點內容了:

部署存儲倉庫

如果想部署的站點是已經在GitHub上存儲的倉庫,新建一個倉庫然后再打包然后在部署未免有些太過繁瑣,這里我們可以通過GitHub的部署工具進行設置,終端執行如下命令安裝插件:

npm i gh-pages -D

安裝完插件之后我們也是需要調整一下package.json中的命令操作,如下所示:

設置完命令之后,終端執行如下命令進行打包文件夾:

文件打包完成之后執行我們設置的發布命令,如下所示:

回到我們的項目倉庫,可以看到我們正準備要發布站點的項目已經成功被寫入分支當中:

接下來還是老樣子,我們來到倉庫的設置界面點擊Pages,可以看到當前分支我們發布的項目已經幫助我們配置好了站點內容,這里我們無需在選擇分支進行發布了,直接訪問站點即可:

可以看到我們的項目也已經成功部署到GitHub站點上了,效果還不錯:

取消刪除站點

如果想對已經部署的站點進行取消或刪除操作的話,可以參考以下內容:

取消站點:取消站點部署僅僅是對當前部署的站點進行刪除且該站點將不再可用,但是所有現有存儲庫設置或內容都不受影響,取消發布站點不會永久刪除該站點,我們只需要在已經部署的站點配置頁中,點擊取消發布站點的按鈕即可,如下所示:

取消站點之后再次訪問我們的站點鏈接的話就會看到404界面,如下所示:

如果又想重啟已經取消的站點,可以創建新部署,切換一下文本保存方式然后再切換回來然后點擊保存即可,后面再訪問鏈接可以看到我們的項目又可以繼續訪問了:

刪除站點:如果想刪除站點可以通過兩種方式刪除站點:

1) 刪除存儲庫:直接將該倉庫進行刪除即可

2)源更改為None分支:切換項目分支,選擇None分支即可

設置404站點

如果想自定義設置部署站點中的404界面的話,非常簡單,只需要在部署站點發布來源配置一個404.html或404.md文件即可,在YAML 前頁(如果存在)下方添加要在404頁面上顯示的內容:

---
permalink: /404.html
---

這里我嵌入一個404.html文件試一試,首先我們先隨便輸入一段內容到站點的url上可以看到默認的404界面的內容:

接下來我們點擊項目右上角的添加文件的按鈕,然后點擊創建新文件:

然后將我們配置的404界面的內容輸入其中,然后提交:

接下來輸入我們提交的描述信息是添加404界面內容即可:

等待一段時間之后,我們再次訪問站點,可以看到我們自定義的404界面生效了:

當然配置GitHub站點還有一些其他操作,博主這里就不再一一再贅述了,感興趣的朋友可以自行嘗試一下吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81014.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81014.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81014.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Pytorch里面多任務Loss是加起來還是分別backward? | Pytorch | 深度學習

當你在深度學習中進入“多任務學習(Multi-task Learning)”的領域,第一道關卡可能不是設計網絡結構,也不是準備數據集,而是:多個Loss到底是加起來一起backward,還是分別backward? 這個問題看似簡單,卻涉及PyTorch計算圖的構建邏輯、自動求導機制、內存管理、任務耦合…

基于DPABI提取nii文件模板的中心點坐標

基于DPABI提取nii文件模板的中心點坐標 在使用DPABI&#xff08;Data Processing Assistant for Resting-State fMRI&#xff09;處理NIfTI&#xff08;.nii&#xff09;文件時&#xff0c;可以通過以下步驟提取模板中每個坐標點的中心點坐標&#xff1a;https://wenku.csdn.n…

redis 基本命令-17 (KEYS、EXISTS、TYPE、TTL)

Redis 基本命令&#xff1a;KEYS、EXISTS、TYPE、TTL Redis 提供了一套基本命令&#xff0c;這些命令對于管理密鑰和了解數據庫中存儲的數據至關重要。這些命令雖然簡單&#xff0c;但提供了對 Redis 實例的結構和狀態的重要見解。具體來說&#xff0c;KEYS、EXISTS、TYPE 和 …

加速leveldb查詢性能之Cache技術

加速leveldb查詢性能之Cache技術 目錄 1.兩種Cache2.Table Cache3.Block Cache 注&#xff1a;本節所有內容更新至星球。 學習本節之前最好提前需要學習前面兩篇文章&#xff0c;這樣便好理解本節內容。 多圖文講解leveldb之SST/LDB文件格式 【深入淺出leveldb】LRU與哈希表 1.…

5.2.3 使用配置文件方式整合MyBatis

本實戰通過使用Spring Boot和MyBatis技術棧&#xff0c;實現了文章列表顯示功能。首先&#xff0c;通過創建ArticleMapper接口和對應的ArticleMapper.xml配置文件&#xff0c;實現了對文章數據的增刪改查操作&#xff0c;并通過單元測試驗證了功能的正確性。接著&#xff0c;通…

Node.js 源碼架構詳解

Node.js 的源碼是一個龐大且復雜的項目&#xff0c;它主要由 C 和 JavaScript 構成。要完全理解每一部分需要大量的時間和精力。我會給你一個高層次的概述&#xff0c;并指出一些關鍵的目錄和組件&#xff0c;幫助你開始探索。 Node.js 的核心架構 Node.js 的核心可以概括為以…

【NLP 76、Faiss 向量數據庫】

壓抑與痛苦&#xff0c;那些輾轉反側的夜&#xff0c;終會讓我們更加強大 —— 25.5.20 Faiss&#xff08;Facebook AI Similarity Search&#xff09;是由 Facebook AI 團隊開發的一個開源庫&#xff0c;用于高效相似性搜索的庫&#xff0c;特別適用于大規模向…

Go 語言簡介

1. Go 語言簡介 1.1 什么是 Go 語言 Go語言&#xff0c;通常被稱為Golang&#xff0c;是由Google在2007年開始開發&#xff0c;并在2009年正式發布的一種開源編程語言。Go語言的設計初衷是解決大型軟件開發中的效率和可維護性問題&#xff0c;特別是在多核處理器和網絡化系統…

VMware虛擬機突然無法ssh連接

遇到的情況&#xff1a; 功能全部正常的情況下&#xff0c;沒有修改任何配置&#xff0c;重啟電腦之后無法ssh連接 其實不太可能的可能原因&#xff1a; 1、虛擬機內部sshd服務未運行 systemctl status sshd systemctl start sshd 2、檢查SSH端口監聽 netstat -an | grep :…

[ 計算機網絡 ] | 宏觀談談計算機網絡

&#xff08;目錄占位&#xff09; 網絡間通信&#xff0c;本質是不同的兩個用戶通信&#xff1b;本質是兩個不同主機上的兩個進程間通信。 因為物理距離的提升&#xff0c;就衍生出了很多問題。TCP/IP協議棧 / OSI七層模型&#xff0c;將協議分層&#xff0c;每一層都是為了…

Oracle 11g導出數據庫結構和數據

第一種方法&#xff1a;Plsql 利用plsql可視化工具導出&#xff0c;首先根據步驟導出表結構&#xff1a; 工具(Tools)->導出用戶對象(export user objects)。 其次導出數據表結構&#xff1a; 工具(Tools)->導出表(export Tables)->選中表->sql inserts(where語…

跟Gemini學做PPT:匯報背景圖尋找指南

PPT 匯報背景圖尋找指南 既然前端功能已經完善&#xff0c;現在可以專注于匯報了。對于 PPT 背景圖&#xff0c;你有幾個選擇&#xff1a; 1. 內置模板和主題&#xff1a; 優點&#xff1a; 最簡單、快速&#xff0c;PowerPoint、Keynote、Google Slides 等演示軟件都內置了…

【Hadoop】大數據技術之 HDFS

目錄 一、HDFS 概述 1.1 HDFS 產出背景及定義 1.2 HDFS 優缺點 1.3 HDFS 組成架構 1.4 HDFS 文件塊大小 二、HDFS 的Shell 操作 三、HDFS 的讀寫流程&#xff08;面試重點&#xff09; 3.1 HDFS 寫數據流程 3.2 HDFS 讀數據流程 四、DataNode 4.1 DataNode 的工作機制…

Spring Boot WebFlux流式返回全攻略:從基礎到企業級實踐

目錄 流式返回的核心價值與適用場景WebFlux核心機制解析基礎流式接口開發實戰企業級應用場景與優化方案客戶端對接全方案常見問題與調優策略未來發展趨勢1. 流式返回的核心價值與適用場景 1.1 傳統響應模式的局限性 傳統Spring MVC采用同步阻塞模型,在以下場景面臨挑戰: 大…

AI浪潮下,第五消費時代的商業進化密碼

解鎖 AI 與第五消費時代 在時代的長河中,消費浪潮的更迭深刻地影響著商業的格局。當下,我們正處于第五消費時代,這個時代有著鮮明的特征,如老齡化、單身化趨勢日益顯著,社會逐漸步入低欲望、個性化與共享化并行的階段 。隨著人工智能技術的飛速發展,它在商業領域的滲透也…

氫氣傳感器維護常見問題及解決方法

氫氣傳感器在工業生產和氫能源系統中扮演著關鍵角色&#xff0c;用于實時檢測氫氣濃度以預防爆炸和中毒事故。然而&#xff0c;傳感器的維護過程中可能會遇到一些常見問題&#xff0c;這些問題可能會影響傳感器的性能和檢測準確性。本文將詳細探討這些常見問題及其解決方法。 1…

【普及+/提高】洛谷P2613 ——【模板】有理數取余

見&#xff1a;P2613 【模板】有理數取余 - 洛谷 題目描述 給出一個有理數 cba?&#xff0c;求 cmod19260817 的值。 這個值被定義為 bx≡a(mod19260817) 的解。 輸入格式 一共兩行。 第一行&#xff0c;一個整數 a。 第二行&#xff0c;一個整數 b。 輸出格式 一個整…

RK常見系統屬性設置/獲取命令使用

設置有線mac地址 ifconfig eth0 hw ether 021234567000 讀取mac地址 public static String getEthMacAddressBySysFs() { try (BufferedReader reader new BufferedReader(new FileReader("/sys/class/net/eth0/address"))) { return reader.r…

文章記單詞 | 第115篇(六級)

一&#xff0c;單詞釋義 solar /?so?l?r/ adj. 太陽的&#xff1b;太陽能的bruise /bru?z/ n. 瘀傷&#xff1b;擦傷 v. &#xff08;使&#xff09;青腫&#xff1b;挫傷thus /?s/ adv. 因此&#xff1b;這樣&#xff1b;于是drink /dr??k/ v. 喝&#xff1b;飲 n. 飲…

9大開源AI智能體概況

項目GitHub 鏈接開發組織核心功能應用領域典型應用案例活躍度AutoGPT (176k?)鏈接Significant Gravitas 團隊基于 GPT-4 的自主代理&#xff0c;能夠自動分解任務并生成多步提示循環執行&#xff0c;支持調用工具&#xff08;如網絡搜索、文件操作等&#xff09;。自動化辦公、…