靜態(tài)網(wǎng)站生成器的全面指南
來源:
杰云網(wǎng)絡(luò)建站SEO優(yōu)化公司
日期:2018-03-24 15:02:31
點(diǎn)擊:11644
屬于:網(wǎng)站建設(shè)
大多數(shù)開發(fā)人員已經(jīng)理解了內(nèi)容管理系統(tǒng)是如何工作的。WordPress的流行已經(jīng)滲透到全球,成為創(chuàng)建任何博客的主要工具。
然而,一個(gè)日益增長的趨勢是使用靜態(tài)網(wǎng)站生成器為博客或小型網(wǎng)站。這些動(dòng)態(tài)編譯器將預(yù)處理代碼轉(zhuǎn)換為靜態(tài)HTML/CSS/JS文件,這些文件可以在沒有數(shù)據(jù)庫的服務(wù)器上進(jìn)行維護(hù)。雖然這可能不是每個(gè)站點(diǎn)最好的工作流程,但有許多原因?qū)е麻_發(fā)人員蜂擁至靜態(tài)站點(diǎn)生成器。
在這篇文章中,我想探究一下靜態(tài)網(wǎng)站生成器的深度:它們做了什么,它們是怎么做的,以及為什么你可能想要使用它。如果你只是不理解靜態(tài)站點(diǎn)生成器,那么希望這篇文章能夠闡明這個(gè)主題。
靜態(tài)Web的起源。
實(shí)際上,web在90年代就開始了純粹的靜態(tài)HTML文件。是的,有更大的應(yīng)用程序運(yùn)行在Perl或Java上,但是HTML是任何人在網(wǎng)上發(fā)布內(nèi)容的最快方式。
靜態(tài)站點(diǎn)是為了快速交付內(nèi)容。HTML頁面由web瀏覽器直接解析,因此HTTP延遲是加載時(shí)間的最大因素。
多年來,網(wǎng)絡(luò)發(fā)展到包括數(shù)據(jù)庫和強(qiáng)大的引擎,如WordPress。這些引擎很快就成為了解決方案,因?yàn)樗鼈兛梢赃\(yùn)行強(qiáng)大的應(yīng)用程序,而無需編寫后端代碼。
隨著CMS引擎的發(fā)展,管理加載時(shí)間成為一個(gè)值得關(guān)注的問題。開發(fā)人員需要擔(dān)心數(shù)據(jù)庫查詢時(shí)間和龐大的模板。緩存有幫助,但它很少能提供與靜態(tài)頁面相同的性能。
對靜態(tài)站點(diǎn)的這種固定是在內(nèi)容管理系統(tǒng)對小型項(xiàng)目過于臃腫的時(shí)候出現(xiàn)的。幾乎就像web行業(yè)已經(jīng)實(shí)現(xiàn)了一個(gè)完整的循環(huán),實(shí)現(xiàn)了靜態(tài)HTML頁面的好處——但是這次我們有了更強(qiáng)大的工具。
為什么靜態(tài)站點(diǎn)會(huì)重新出現(xiàn)?
采用靜態(tài)內(nèi)容的最大原因之一是技術(shù)和瀏覽器功能。使用純JavaScript和外部api來設(shè)置動(dòng)態(tài)資源比以往任何時(shí)候都要容易。
這允許開發(fā)人員創(chuàng)建靜態(tài)頁面,該頁面仍然支持使用swift類型的站點(diǎn)搜索,或者通過Disqus允許用戶評論。如果一個(gè)站點(diǎn)不需要運(yùn)行數(shù)據(jù)庫,那么為什么要運(yùn)行它呢?
devs的另一個(gè)原因是性能?,F(xiàn)代web用戶在各種環(huán)境中瀏覽,從微型智能手機(jī)到帶有雙顯示器的頂級桌面。很難對每個(gè)變量進(jìn)行規(guī)劃,所以最好的方法是盡可能地優(yōu)化。
根據(jù)定義,靜態(tài)網(wǎng)站是用來處理流量的。沒有必要擔(dān)心緩存或數(shù)據(jù)庫節(jié)流可能會(huì)減慢加載時(shí)間。
綜上所述,對靜態(tài)網(wǎng)站的重新認(rèn)識來自:
改進(jìn)的web瀏覽器功能
支持預(yù)處理,如Sass/Less和Haml/Jade。
許多免費(fèi)的第三方解決方案的動(dòng)態(tài)內(nèi)容。
靜態(tài)站點(diǎn)生成器使網(wǎng)站創(chuàng)建快捷高效。
優(yōu)勢動(dòng)態(tài)網(wǎng)站
靜態(tài)網(wǎng)站不依賴于任何數(shù)據(jù)庫。靜態(tài)站點(diǎn)不等待數(shù)據(jù)庫連接,當(dāng)然也不需要處理數(shù)據(jù)庫錯(cuò)誤。
類似地,靜態(tài)站點(diǎn)不依賴任何后端語言。您不需要一個(gè)帶有PHP、Rails、Python、Node或其他任何東西的服務(wù)器,而不是服務(wù)器的核心功能。靜態(tài)站點(diǎn)只加載靜態(tài)內(nèi)容,并精確地完成Internet的工作。
同樣考慮到針對動(dòng)態(tài)網(wǎng)站的安全問題。盡管多年來網(wǎng)絡(luò)安全已經(jīng)有所改善,但惡意的黑客仍然可以通過數(shù)據(jù)庫注入或不恰當(dāng)?shù)牟寮?主題進(jìn)入WordPress和其他系統(tǒng)。
下面是一些使用靜態(tài)站點(diǎn)而不是動(dòng)態(tài)站點(diǎn)的優(yōu)點(diǎn):
與動(dòng)態(tài)內(nèi)容相比,HTTP請求的加載速度更快。
靜態(tài)網(wǎng)站更安全,漏洞更少(沒有數(shù)據(jù)庫或后端腳本)
靜態(tài)站點(diǎn)生成器為動(dòng)態(tài)CMS提供了類似的工具(如。模板,泛音,預(yù)處理)
學(xué)習(xí)使用靜態(tài)站點(diǎn)生成器比學(xué)習(xí)一個(gè)完整的CMS更容易。
沒有數(shù)據(jù)庫或后端服務(wù)器需求。
靜態(tài)生成缺陷
雖然有很多關(guān)于靜態(tài)站點(diǎn)生成的好東西,但它仍然不完美,當(dāng)然對于每個(gè)項(xiàng)目都不是很好。
最大的缺點(diǎn)可能是來自用戶視角的內(nèi)容管理。開發(fā)人員可以編寫一些markdown,生成頁面并將其推送到服務(wù)器。但是非技術(shù)客戶能做到嗎?他們會(huì)想學(xué)習(xí)嗎?
這很不幸,因?yàn)殪o態(tài)生成器的主要目標(biāo)是小網(wǎng)站。
該解決方案是一個(gè)靜態(tài)的站點(diǎn)CMS,具有用戶管理功能,如Netlify CMS。
Netlify CMS
另一個(gè)考慮是每次需要重新編譯站點(diǎn)時(shí),需要手動(dòng)運(yùn)行終端命令。大多數(shù)背包
掃一掃,加我微信
然而,一個(gè)日益增長的趨勢是使用靜態(tài)網(wǎng)站生成器為博客或小型網(wǎng)站。這些動(dòng)態(tài)編譯器將預(yù)處理代碼轉(zhuǎn)換為靜態(tài)HTML/CSS/JS文件,這些文件可以在沒有數(shù)據(jù)庫的服務(wù)器上進(jìn)行維護(hù)。雖然這可能不是每個(gè)站點(diǎn)最好的工作流程,但有許多原因?qū)е麻_發(fā)人員蜂擁至靜態(tài)站點(diǎn)生成器。
在這篇文章中,我想探究一下靜態(tài)網(wǎng)站生成器的深度:它們做了什么,它們是怎么做的,以及為什么你可能想要使用它。如果你只是不理解靜態(tài)站點(diǎn)生成器,那么希望這篇文章能夠闡明這個(gè)主題。
靜態(tài)Web的起源。
實(shí)際上,web在90年代就開始了純粹的靜態(tài)HTML文件。是的,有更大的應(yīng)用程序運(yùn)行在Perl或Java上,但是HTML是任何人在網(wǎng)上發(fā)布內(nèi)容的最快方式。
靜態(tài)站點(diǎn)是為了快速交付內(nèi)容。HTML頁面由web瀏覽器直接解析,因此HTTP延遲是加載時(shí)間的最大因素。
多年來,網(wǎng)絡(luò)發(fā)展到包括數(shù)據(jù)庫和強(qiáng)大的引擎,如WordPress。這些引擎很快就成為了解決方案,因?yàn)樗鼈兛梢赃\(yùn)行強(qiáng)大的應(yīng)用程序,而無需編寫后端代碼。
隨著CMS引擎的發(fā)展,管理加載時(shí)間成為一個(gè)值得關(guān)注的問題。開發(fā)人員需要擔(dān)心數(shù)據(jù)庫查詢時(shí)間和龐大的模板。緩存有幫助,但它很少能提供與靜態(tài)頁面相同的性能。
對靜態(tài)站點(diǎn)的這種固定是在內(nèi)容管理系統(tǒng)對小型項(xiàng)目過于臃腫的時(shí)候出現(xiàn)的。幾乎就像web行業(yè)已經(jīng)實(shí)現(xiàn)了一個(gè)完整的循環(huán),實(shí)現(xiàn)了靜態(tài)HTML頁面的好處——但是這次我們有了更強(qiáng)大的工具。
為什么靜態(tài)站點(diǎn)會(huì)重新出現(xiàn)?
采用靜態(tài)內(nèi)容的最大原因之一是技術(shù)和瀏覽器功能。使用純JavaScript和外部api來設(shè)置動(dòng)態(tài)資源比以往任何時(shí)候都要容易。
這允許開發(fā)人員創(chuàng)建靜態(tài)頁面,該頁面仍然支持使用swift類型的站點(diǎn)搜索,或者通過Disqus允許用戶評論。如果一個(gè)站點(diǎn)不需要運(yùn)行數(shù)據(jù)庫,那么為什么要運(yùn)行它呢?
devs的另一個(gè)原因是性能?,F(xiàn)代web用戶在各種環(huán)境中瀏覽,從微型智能手機(jī)到帶有雙顯示器的頂級桌面。很難對每個(gè)變量進(jìn)行規(guī)劃,所以最好的方法是盡可能地優(yōu)化。
根據(jù)定義,靜態(tài)網(wǎng)站是用來處理流量的。沒有必要擔(dān)心緩存或數(shù)據(jù)庫節(jié)流可能會(huì)減慢加載時(shí)間。
綜上所述,對靜態(tài)網(wǎng)站的重新認(rèn)識來自:
改進(jìn)的web瀏覽器功能
支持預(yù)處理,如Sass/Less和Haml/Jade。
許多免費(fèi)的第三方解決方案的動(dòng)態(tài)內(nèi)容。
靜態(tài)站點(diǎn)生成器使網(wǎng)站創(chuàng)建快捷高效。
優(yōu)勢動(dòng)態(tài)網(wǎng)站
靜態(tài)網(wǎng)站不依賴于任何數(shù)據(jù)庫。靜態(tài)站點(diǎn)不等待數(shù)據(jù)庫連接,當(dāng)然也不需要處理數(shù)據(jù)庫錯(cuò)誤。
類似地,靜態(tài)站點(diǎn)不依賴任何后端語言。您不需要一個(gè)帶有PHP、Rails、Python、Node或其他任何東西的服務(wù)器,而不是服務(wù)器的核心功能。靜態(tài)站點(diǎn)只加載靜態(tài)內(nèi)容,并精確地完成Internet的工作。
同樣考慮到針對動(dòng)態(tài)網(wǎng)站的安全問題。盡管多年來網(wǎng)絡(luò)安全已經(jīng)有所改善,但惡意的黑客仍然可以通過數(shù)據(jù)庫注入或不恰當(dāng)?shù)牟寮?主題進(jìn)入WordPress和其他系統(tǒng)。
下面是一些使用靜態(tài)站點(diǎn)而不是動(dòng)態(tài)站點(diǎn)的優(yōu)點(diǎn):
與動(dòng)態(tài)內(nèi)容相比,HTTP請求的加載速度更快。
靜態(tài)網(wǎng)站更安全,漏洞更少(沒有數(shù)據(jù)庫或后端腳本)
靜態(tài)站點(diǎn)生成器為動(dòng)態(tài)CMS提供了類似的工具(如。模板,泛音,預(yù)處理)
學(xué)習(xí)使用靜態(tài)站點(diǎn)生成器比學(xué)習(xí)一個(gè)完整的CMS更容易。
沒有數(shù)據(jù)庫或后端服務(wù)器需求。
靜態(tài)生成缺陷
雖然有很多關(guān)于靜態(tài)站點(diǎn)生成的好東西,但它仍然不完美,當(dāng)然對于每個(gè)項(xiàng)目都不是很好。
最大的缺點(diǎn)可能是來自用戶視角的內(nèi)容管理。開發(fā)人員可以編寫一些markdown,生成頁面并將其推送到服務(wù)器。但是非技術(shù)客戶能做到嗎?他們會(huì)想學(xué)習(xí)嗎?
這很不幸,因?yàn)殪o態(tài)生成器的主要目標(biāo)是小網(wǎng)站。
該解決方案是一個(gè)靜態(tài)的站點(diǎn)CMS,具有用戶管理功能,如Netlify CMS。
Netlify CMS
另一個(gè)考慮是每次需要重新編譯站點(diǎn)時(shí),需要手動(dòng)運(yùn)行終端命令。大多數(shù)背包
標(biāo)簽:
本文來源:杰云網(wǎng)絡(luò),轉(zhuǎn)載請注明出處!如果需要 營銷型網(wǎng)站建設(shè)、 微商城、 小程序商城、 多端小程序 請聯(lián)系我們!
掃一掃,加我微信