近期,我在Netlify的虛擬Jamstack大會上主持了一場小組討論,與會者包括Netlify首席執行官Matt Biilman和Automattic創始人Matt Mullenweg。這場討論被許多人視為“Jamstack與WordPress之爭”。
我個人對此有很多想法,並認為自己更適合擔任評論員而非主持人。這是我目前最喜歡的技術討論之一!所以請允許我寫一篇博客。
聲明: Automattic和Netlify都是本網站的活躍贊助商。我有一些使用兩者的生產網站,老實說,我都很喜歡它們,這也是我將嘗試闡述的一個主要觀點。我恰好正在WordPress網站上撰寫和發布這篇文章。
歷史回顧
- Richard MacManus發表了文章“WordPress聯合創始人Matt Mullenweg並非Jamstack的粉絲”,文中引用了他們之間電子郵件對話的內容,Matt說了一句:“對於絕大多數採用Jamstack的人來說,這是一種倒退。”
- Matt Biilmann發表了回應文章“關於Mullenweg和Jamstack——倒退還是未來?”,其中有一整節標題為“WordPress時代的終結”。
- 期間,人們紛紛發表評論。 Netlify董事會成員Ohad Eder-Pressman寫了一封公開信。 Sarah Gooding在WP Tavern(由Matt Mullenweg擁有)上總結了一些活動。我也參與其中。
- Matt Mullenweg澄清了他的言論,並添加了一些新的評論。
這場辯論於2020年Jamstack虛擬大會上舉行。目前沒有公開的視頻記錄(抱歉)。
架構對比
將Jamstack與WordPress進行比較有點奇怪。真正可比的是它們都是構建網站時可能選擇的途徑。這篇文章的大部分內容都會牢記這一點,並以此方式比較兩者。它們之所以不能直接比較,是因為:
- Jamstack是對一種架構理念的寬泛描述,該理念鼓勵在CDN上使用靜態文件,並使用JavaScript訪問的服務來滿足任何動態需求。
- WordPress是基於LAMP架構的CMS。
這兩者並非完全相同。
如果我們暫時只關注架構,那麼比較的對象將是:
- 靜態託管服務
- LAMP
靜態服務的示例是使用Netlify進行託管(這是靜態的),並使用服務來完成任何需要完成的動態操作。也許您使用Netlify自己的表單和身份驗證功能以及Hasura進行數據存儲。
在LAMP架構中,您使用MySQL存儲數據,因此您無需使用外部服務。您還可以使用PHP。因此,有了這些(以及開源軟件),您就擁有了身份驗證所需的一切。但這並不意味著您從不使用服務;只是因為您已經擁有服務器上的更多技術,所以您使用服務的頻率較低。
Matt B. 將LAMP架構稱為“單體架構”。 Matt M. 對此表示異議,並將其稱為“集成方法”。我不是計算機科學家,但我認為這兩種說法都有道理。以下是維基百科的解釋:
[…]單體應用程序描述的是一個單層軟件應用程序,其中用戶界面和數據訪問代碼組合在一個程序中。
根據此定義,WordPress似乎確實是一個單體架構,但維基百科文章繼續說道:
[…] 單體應用程序描述的是一個設計時沒有模塊化的軟件應用程序。
從這個角度來看,似乎WordPress不符合單體架構的定義。 WordPress的鉤子和插件架構是模塊化的。 ?♂️
聽聽這兩位大佬就此進行深入探討將會很有趣,但軟件就是軟件。一個自託管的WordPress網站運行在擁有完整技術堆棧的服務器上。充分利用該服務器是有意義的(即集成)。在Jamstack方法中,服務器是抽象的。您需要執行的所有其他操作都拆分為不同的服務(即非集成)。
WordPress方法並不意味著您從不使用外部服務。在這兩種架構中,您都可能使用Stripe之類的電子商務API。您可能使用Cloudinary之類的服務來進行強大的媒體存儲和服務。甚至WordPress的Jetpack服務(我使用並喜歡它)也為自託管的WordPress網站帶來了強大的功能,它像第三方服務一樣運行,通過將資產託管和搜索技術轉移到雲服務器上來實現。兩種架構都是技術的集合。
兩種架構都不是“紙牌屋” ,也不比另一種更脆弱。所有網站都可能適用“其強度取決於其最薄弱的環節”的比喻。如果WordPress插件發布了錯誤的版本或在上傳時以某種方式損壞,它可能會導致我的網站出現問題,直到我修復它為止。如果我的無服務器數據庫的API密鑰無效,我的Jamstack網站可能會出現問題,直到我修復它為止。如果Stripe宕機,在我恢復服務之前,我將無法在任何類型的網站上銷售任何產品。
定價
WordPress.com有一個免費計劃,這絕對是一個可以構建網站的地方。 (我有幾個。)但是,除非您使用的是每月25美元的商業計劃,否則您實際上無法訪問開發人員級別的功能。自託管的WordPress本身是開源且免費的,但是您找不到免費啟動自託管WordPress網站的地方。它的起步價格很低,然後會逐漸增加。您需要LAMP託管才能運行WordPress。以下是相當便宜的託管計劃:
- Bluehost的“共享”計劃起價為每月3.95美元。
- Flywheel的最低計劃為每月14美元。 (本網站使用的是Flywheel的高級計劃。)
- Media Temple的WordPress專用託管起價為每月20美元。 (本網站很長時間都使用的是Media Temple的高級計劃。)
- Automattic的Pressable服務有一個起價為每月25美元的計劃。
一開始就需要花錢。
Jamstack更常見的是免費起步,然後在不同的時間點產生成本。由於Jamstack比較新,感覺市場仍在摸索之中。
- Vercel在您需要團隊成員或密碼保護網站等功能之前是免費的。單個密碼保護網站每月150美元。您可以將基本身份驗證添加到任何帶有Apache的服務器上,無需額外費用。
- Netlify非常相似,在更高的計劃中解鎖功能,並提供按站點付費的功能,例如分析(每月9美元)和身份驗證(5000個活躍用戶每月99美元)。
- AWS Amplify免費起步,但與AWS上的所有內容一樣,您的使用情況在很多層面上都是按量計費的,例如構建分鐘數、存儲和帶寬。他們有一個示例計算,一個網絡應用程序每天有10000個活躍用戶,每月更新兩次,每月成本為65.98美元。
- Azure Static Web Apps尚未發布定價,但幾乎肯定會有免費層或免費使用或某種方式。
所有這些都提醒我們,Netlify並非Jamstack領域的唯一玩家。 Jamstack只是意味著靜態託管加上服務。
您不能做出像Jamstack更便宜這樣的籠統陳述。這過分依賴於網站的使用情況和需求。對於高使用量和大量高級服務,Jamstack(就像無服務器一樣)可能會變得非常昂貴。 Jamstack表示他們的企業定價起價為每月3000美元,雖然您可以獲得身份驗證、表單和媒體處理等功能,但您不會獲得CMS或任何數據存儲,這可能會使您的成本大幅增加。
雖然這個WordPress網站不是企業級的,但我可以告訴您,它需要大約每月1000美元的服務器,這假設Cloudflare位於其前面,以幫助減少直接到主機的帶寬,以及Jetpack處理媒體託管和搜索功能。 Mailchimp發送我們的時事通訊。 Wufoo為我們的表單提供支持。我們還有付費插件,例如Advanced Custom Fields Pro和一些WooCommerce附加組件。這還不是全部。總計可能每月幾千美元。這並非集成方法獨有,但有助於說明WordPress網站的成本也可能相當高。他們沒有公佈價格(企業常用的策略),但Automattic自己的WordPress VIP託管服務的價格肯定在四位數以上,然後您還需要添加第三方內容。
底線:這裡沒有定價方面的重大變化。
性能
80%的網頁性能是前端問題。
這是事實,但也建立在服務器的基礎上(佔最初20%)。世界上最快的界面如果服務器的第一個請求需要幾秒鐘才能返回,就不會感覺很快。如果您想要一個快速的網站,您必須確保第一個請求非常快。
你知道什麼超級快嗎?全球CDN提供靜態文件。無論後端的服務器、託管或CMS情況如何,這都是您想要實現的目標。雖然這是Jamstack(靜態CDN支持的託管)的基礎,但這並不意味著WordPress無法做到這一點。
您將包含靜態內容的index.html文件放在Netlify上,它將非常快。也許您的靜態網站生成器會生成該文件(值得指出的是,該文件很可能從WordPress獲取內容)。這非常棒。
默認情況下,WordPress不會生成可在全球CDN上緩存的靜態文件。 WordPress從單個來源響應請求,運行PHP,然後向數據庫請求內容,然後組裝響應,最後返回頁面。這可能很快,但遠不如全球CDN上的靜態文件穩定,而且更容易被請求壓垮。
WordPress主機知道這一點,他們試圖在託管級別解決這個問題。看看WP Engine的方法。無需您執行任何操作,他們使用頁面緩存,以便網站基本上可以返回靜態資產,而無需運行PHP或訪問數據庫。他們還採用了各種其他緩存技術,包括與Cloudflare合作以實現最佳緩存效果。在我寫這篇文章的時候,我的shoptalkshow.com網站實際上宕機了。我寫信給主機Flywheel,看看發生了什麼。事實證明,當我進入那裡打開一個暫存站點時,我切換了一個錯誤的開關,關閉了他們的緩存。該網站無法處理流量,直接崩潰了。將緩存開關重新打開立即解決了問題。我沒有在網站前面使用Cloudflare,但我應該使用。
Cloudflare是使WordPress速度更快的神奇秘訣的一部分。只需將其放在自託管WordPress網站的前面,就能在提高速度和可靠性方面發揮巨大作用。缺少的部分之一是HTML本身的出色緩存,他們本月才解決了這個問題,現在也可以緩存了。有趣的是,緩存WordPress意味著將請求緩存為靜態HTML和靜態資產,並從全球CDN提供服務,這最終也就是Jamstack的本質。
Matt M.提到WordPress.com使用在特定流量級別啟動的全球CDN。我不確定是不是Cloudflare,但我不會懷疑。
在WordPress網站前面使用Cloudflare後,我看到的第一個響應數字與沒有Cloudflare的Netlify網站相同(因為他們不建議在Netlify託管的網站前面使用Cloudflare)。這是兩位數毫秒級的數字,非常好。
從這個基礎出發,關於性能的任何討論都將變得特定於前端。無論後端的服務器、託管或CMS情況如何,前端速度策略都是相同的。
安全性
關於WordPress網站被黑客攻擊的故事比Jamstack網站多得多。但說WordPress安全性較低是否公平? WordPress已經存在了大約二十年,其上構建的網站數量比Jamstack多幾個數量級。撇開安全性不談,考慮到這些數字,您將從WordPress那裡聽到更多故事。
Matt M提到whitehouse.gov使用WordPress,這顯然是一個需要最高安全級別的網站。這並不是說WordPress本身是不安全的軟件。關鍵在於你如何使用它。你的密碼不安全嗎?無論你使用什麼平台,這都是不安全的。服務器本身通過文件權限或訪問級別不安全嗎?這並非完全是軟件的錯,但你可能正因為軟件而處於這種境地。你運行的是最新版本的WordPress嗎?使用情況充其量是分散的,版本越舊,安全性就越低。棘手。
考慮攻擊媒介可能更有意思。也就是說,在哪些點可能被黑客攻擊。如果您的靜態文件位於靜態託管上,我認為可以肯定地說攻擊媒介相當少。但是,仍然有一些:
- 您的託管帳戶可能被黑客攻擊
- 您的Git倉庫可能被黑客攻擊
- 您的Cloudflare帳戶可能被黑客攻擊
- 您的域名可能被盜(確實會發生)
WordPress網站也是如此,只是還有其他攻擊媒介,例如:
- 服務器端代碼:XSS、不良插件、遠程執行等。
- 數據庫漏洞
- 運行舊版本的WordPress
- 登錄系統就在網站本身,例如壞人可以攻擊/wp-login.php
我認為可以公平地說,WordPress網站的攻擊媒介更多,但任何網站都有很多媒介。任何網站的託管帳戶都是一個主要的媒介。 DNS鏈中的任何內容。任何具有登錄信息的第三方服務。任何具有API密鑰的內容。
個人經驗:這個網站使用WordPress,從未被黑客攻擊過,但這並非因為沒有嘗試。我的確感覺我需要比僅由靜態網站生成器構建的網站更多地考慮WordPress網站的安全性。
擴展性
擴展任何方法都需要花錢。這個WordPress網站並沒有大規模擴展,但確實需要比入門級服務器要求更高的擴展。我通過Cloudflare提供所有流量,因此過去30天的峰值數據顯示我每月提供5 TB的帶寬。
在Netlify商業計劃中(每月99美元可獲得600 GB的流量,然後每額外100 GB收取20美元),計算結果為979美元。還記得我之前說過這個網站需要大約每月1000美元的服務器嗎?我在運行這些數字之前就寫了這些內容,所以非常接近(真棒)。在這個網站的規模上,Jamstack與WordPress不相上下。所有主機都會對帶寬收費,並有超額收費的上限。 Amplify對超過15 GB每月上限的帶寬每GB收取0.15美元。 Flywheel(我的WordPress主機)根據每月的訪問者上限收費,超過上限後,每1000人收取1美元。
WordPress擴展的故事是:
- 使用能夠處理它並擁有自己成熟緩存策略的主機。
- CDN所有內容(這通常意味著在前面放置Cloudflare)。
- 最終,您將為此付費。
Jamstack擴展的故事是:
- 主機和服務都是為了擴展而構建的。
- 您不必過多考慮這項服務能否處理這個問題,或者我是否需要遷移?之類的擴展問題。
- 您需要更多地考慮每個服務的每個方面都會有需要關注的定價這一事實。
- 最終,您將為此付費。
我不得不遷移我的WordPress託管,找到符合網站當前需求的主機。遷移WordPress網站並非易事,但比遷移到另一個CMS容易得多。例如,如果您在無頭CMS上構建了一個Jamstack網站,而該CMS的價格變得太高,那麼遷移的成本比切換主機更大。
我喜歡Dave Rupert前幾天(在Slack對話中)關於比較兩者性能的內容:
Jamstack:使用任何東西來構建你的東西,有一些附加組件可以幫助你,並使用我們的東西將其部署到CDN,這樣它就不會崩潰。
WordPress:使用我們的東西來構建你的東西,有一些附加組件可以幫助你,你必須使用某些主機才能防止它崩潰。
還有其他類型的“擴展”。我想到的是用戶數量之類的東西。這是各種服務用於定價層級的一種可以理解的指標。但在WordPress中這是免費的。您可以擁有任意數量的用戶,並擁有任意數量的細緻權限。這只是CMS,因此添加其他服務仍然可能按用戶收費。 Vercel或Netlify對團隊帳戶按用戶收費。 Contentful(一個流行的無頭CMS)的團隊起價為每月489美元。如果您需要免費帳戶無法提供的任何功能,即使是GitHub的團隊層級也需要每用戶4美元。
分離前端和後端
這是讓人們對使用Jamstack構建網站感到興奮的一大因素。如果我的網站的所有功能和內容都在API的後面,那麼前端就可以隨意構建。
- 想構建一個全靜態網站?好的,在構建過程中訪問該API並執行此操作。
- 想使用React或Vue或其他任何東西構建一個客戶端渲染的網站?很好,客戶端訪問API。
- 想拆分中間,預渲染一些,客戶端渲染一些,服務器端渲染一些?酷,這是一個API,您可以隨意訪問它。
這種靈活性在全新構建中很不錯,但人們也同樣對理論上的未來靈活性感到興奮。如果所有功能和內容都是API驅動的,那麼您就可以完全分離前端和後端,這意味著您將來可以更靈活地更改任何一方。
- 只要您的API繼續輸出前端期望的內容,您就可以重新架構後端而不會影響前端。
- 只要您獲得所需的數據,您就可以重新架構前端而不會影響後端。
對於特定規模和規模的網站,這種分離感覺“未來安全”。我無法準確指出這些規模數字是多少,但它們確實存在。
如果您曾經做過任何主要的網站重新架構只是為了適應一方或另一方,那麼遷移到一個分離後端和前端的系統肯定感覺是一個明智的舉動。
您可以分離WordPress網站(我們將在“同時使用兩者”部分討論),但默認情況下,WordPress是一種非常集成的方案,其中前端是使用非常WordPress特定的API從PHP中的主題構建的。根本沒有分離。
開發人員體驗
Jamstack在很大程度上優先考慮了開發人員體驗(DX)。我聽說有人稱之為“局部最優”,這意味著Jamstack的設計圍繞本地開發(和本地開發人員)體驗進行。
- 您應該在本地工作。您在自己的舒適(本地、快速、自定義)開發環境中工作。
- Git是第一公民。您推送到您的生產分支(例如master或main),然後您的構建過程運行,您的網站就會部署。您甚至可以為每個拉取請求獲得生產網站的預覽URL,這是一個令人印象深刻的強大功能。
- 使用您喜歡的任何工具。您想在Hugo中預構建一個網站?儘管去做。您在學校學習了create-react-app?儘管使用。想嘗試一下最新的框架?儘管嘗試。您可以自由地按照自己的方式構建,利用您可以構建和部署存儲庫中任何您想要的文件夾這一事實。
- 您不必做的事情也很重要。您不必處理HTTPS,您不必處理緩存,您不必擔心文件權限,您不必配置CDN。即使是高級開發人員也欣賞不必做更多事情。
這並不是說WordPress沒有考慮開發人員體驗(例如,他們有一個CLI,它可以執行有用的操作,例如搭建塊),但我認為DX對我來說並不像項目核心那樣重要。
- 在本地運行WordPress很棘手,需要您以某種方式運行(X)AMP堆棧,這涉及到臭名昭著的難以捉摸的第三方軟件。感謝Local by Flywheel。有一些指導,但感覺不像是一個優先事項。
- 應該將什麼放入Git?直到今天,我仍然不太清楚,但我基本上已經決定使用整個/wp-content文件夾。對我來說,感覺奇怪的是沒有指導或明顯的最佳實踐。
- 您完全需要自己負責部署。即使是WordPress專用主機也沒有真正做到這一點。這在很大程度上只是:這是您的SFTP憑據。
- 即使您設置了良好的本地開發和部署管道(我對我的管道很滿意),但這並不能真正幫助處理數據庫的移動,因此您也需要自己負責。
這些都是可以解決的問題,WordPress社區非常龐大,您可以在其中找到大量相關信息,但我認為可以公平地說,WordPress並沒有將DX作為核心。即使過了這麼多年,它仍然有點像狂野西部。
事實上,我發現,由於對健康的本地開發環境的鼓勵被邊緣化,許多人根本就沒有本地開發環境。這是軼事,但現在我已經兩次發現自己參與了其他人的網站,這些網站完全是僅生產環境的。如果它們是非常簡單的網站,並且在很大程度上具有默認行為,那就另當別論了,但這些網站並非如此。它們非常複雜(比這個網站複雜得多),涉及公共用戶登錄、付費會員和權限、頁面構建器、自定義簡碼、自定義CSS以及大量活動部件。這讓我非常害怕。我不想碰任何東西。他們正在現場編輯PHP以使事情正常工作——正如人們開玩笑地稱之為的那樣,牛仔式編碼。一個語法錯誤,網站就會崩潰,甚至可能是您正在查看的頁面。
WordPress在沒有特別好的DX的情況下為如此龐大的網絡提供動力,這非常有趣。如果沒有DX,就沒有Jamstack。這完全是面向開發人員的。對於WordPress,大多數網站可能根本沒有開發人員。它被安裝(或者在WordPress.com的情況下被激活),然後網站所有者從那裡開始。網站所有者就像開發人員一樣,他們擁有很大的權力,但可能根本沒有編寫任何代碼。
為此,我想說WordPress比DX更關注UX,這是這一切中非常重要的一部分……
CMS和最終用戶UX
WordPress是一個非常好的CMS。即使您不喜歡它,也有很多人喜歡它,而且數據可以說明一切。當您決定使用WordPress構建網站時,您會獲得大量構建幾乎任何您想要類型的網站的能力。使用WordPress不太可能出現哎呀,我把自己逼到死胡同了的情況。
這是一件大事。 Jenn指出了這一點,她指出使用WordPress的人比開發人員的需求更重要。
WordPress可以做非常多的事情:
- 博客(或任何類型的以內容為中心的CMS風格的網站)……
- 帶有內容預覽,這在Jamstack中是可能但棘手的
- 處理用戶/權限……
- 在管理員/CMS級別,以及
- 在面向用戶級別(例如論壇、訂閱、社交等)
- 電子商務
- 處理表單
- 處理插件到極致
Jamstack絕對也可以做所有這些事情,但現在是Jamstack處於狂野西部時代。當您查看有關如何存儲數據的教程時,它們通常會涉及解釋如何為雲數據庫編寫單個CRUD函數。這是底層的東西,它可能非常強大,但它與點擊幾個按鈕大相徑庭,而這正是WordPress在很多時候的感覺。
我敢打賭,我可能可以使用Stripe API拼湊出一個基本的Jamstack電子商務設置,這非常酷。但是,當我需要開始考慮庫存管理、運輸區域、產品變體以及誰知道電子商務領域中還有哪些複雜的事情時,我會感到緊張,這讓我希望我有一些非常強大的東西可以幫我完成所有這些工作。
有時,我們開發人員只是為自己構建網站(我做了很多這樣的事情),但我認為開發人員主要是在為其他人構建網站。因此,最重要的問題是:我正在構建的東西是否能增強我為之構建的人們的能力?
無論如何,您都可以實現良好的網站管理體驗,但WordPress無疑已經證明它在該領域提供了服務,而無需在自定義開發方面付出太多努力。
不過,Jamstack有一些技巧是我希望在WordPress上實現的。對我來說,一個重要的技巧是:用戶提交的內容和更新。我現在實際上有三個網站受益於此。一個關於會議的網站,一個關於無服務器的網站,以及一個即將推出的關於編碼字體的網站。 WordPress絕對可以在所有這三個網站上做得很好。但是,我真正想要的是讓人們能夠以我可以這樣說的方式更新和提交內容:是的,看起來不錯,合併。通過採用Jamstack方法,內容位於公共GitHub存儲庫中,任何人都可以參與。
我認為這非常棒。它甚至不一定要求公眾中的某個人了解或理解Git或GitHub,因為Netlify CMS具有開放創作的概念,它將整個貢獻體驗保留在瀏覽器中,並提供用於編輯的UI。
同時使用兩者
這是一個我經常看到被提及的重要問題。即使是Netlify本身也說“沒有對立”。
問題是這樣的:
- “Jam”中的“A”代表API。在構建時或客戶端使用API來構建您的網站。
- WordPress網站默認情況下具有REST API(並且也可以具有GraphQL API)。
- 因此,在您的Jamstack網站上使用該API獲取CMS數據。
是的,完全可以。這有效,人們也在這樣做。我認為這很酷。
但是……
- 在您的Jamstack網站之外運行WordPress網站意味著……您正在運行WordPress網站以及您的Jamstack網站。這會產生成本和技術債務。
- 您通常無法獲得WordPress的所有價值。使用API獲取數據可能是您需要做的全部工作,但這與構建WordPress主題相比,是一種非常非常不同的網站構建方法。您沒有獲得WordPress的其他任何價值。我想到的是這樣的情況:您找到一個很酷的插件,它為您的網站添加了一個花哨的Gutenberg塊。這在WordPress網站上“只需運行”即可,但它可能有一些特殊的前端行為,如果您只是從API中提取HTML,則這些行為將不起作用。它可能會包含一些額外的腳本和样式,您需要自己弄清楚如何將這些腳本和样式合併到您的前端託管位置,以及自己維護更新。
以下是所有都具有獨特“同時使用兩者”方法的參與者:
- Frontity:WordPress的React框架。您可以在其後面運行它,並使用Node服務器,以及您的WordPress網站。 Node服務器將React渲染成HTML,因此您可以為所有頁面進行服務器端渲染,但您仍然在構建SPA。
- WP2Static:一個WordPress插件,可以構建網站的靜態版本,並在進行更改時自動部署它。
- Strattic:他們為您託管動態WordPress網站(他們稱之為“暫存”),您可以在那裡正常使用WordPress。然後您可以選擇部署,他們還會為您託管網站的靜態版本。
- Shifter:Shifter為您託管WordPress網站。您有兩個選擇:1)無頭運行(因此您只是為了獲取數據而訪問API,REST或GraphQL)或2)靜態運行(因此,當您在WordPress中擁有所有想要的內容時,您可以部署它,這將創建網站的靜態版本,他們也會託管,或者您可以將其推送到其他地方,例如Netlify)。
還有很多其他方法可以集成兩者。以下是我們的Geoff和Sarah談論如何通過使用帶有REST API的Vue/Nuxt並在Netlify上託管來同時使用WordPress和Jamstack。
都不使用
以防萬一這一點不清楚,絕對有很多方法可以構建網站。如果您正在構建一個Ruby on Rails網站,那不是Jamstack或WordPress。您可以認為它更像WordPress網站,因為它需要服務器,並且您將使用該服務器盡可能多地做事情。您也可以認為它更像Jamstack,因為即使它不是靜態託管,它也鼓勵使用API和組合服務。
網絡很大,伙計們,這不是零和博弈。我完全期望WordPress繼續發展,並且Jamstack繼續發展,因為網絡本身正在發展。即使我們只考慮市場份額的百分比,我也仍然認為兩者都會增長,將其他任何內容推入更小的部分。
選擇
我甚至不會在這裡討論。這並不是因為我避免偏袒,而是因為它沒有必要。我沒有看到那裡的開發人員咬著指甲試圖決定使用WordPress還是Jamstack方法來構建網站。我們已經到了技術足夠被理解的地步,流程如下:
- 穿上合適的衣服
- 評估需求和結果
- 選擇技術
以上是WordPress和Jamstack的詳細內容。更多資訊請關注PHP中文網其他相關文章!

這是我們在形式可訪問性上進行的小型系列中的第三篇文章。如果您錯過了第二篇文章,請查看“以:focus-visible的管理用戶焦點”。在

CSS盒子陰影和輪廓屬性獲得了主題。讓我們查看一些在真實主題中起作用的示例,以及我們必須將這些樣式應用於WordPress塊和元素的選項。

Svelte Transition API提供了一種使組件輸入或離開文檔(包括自定義Svelte Transitions)時動畫組件的方法。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。