国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
歷史回顧
架構(gòu)對比
定價(jià)
性能
安全性
擴(kuò)展性
分離前端和后端
開發(fā)人員體驗(yàn)
CMS和最終用戶UX
同時(shí)使用兩者
都不使用
選擇
首頁 web前端 css教程 WordPress和Jamstack

WordPress和Jamstack

Apr 02, 2025 pm 06:18 PM

WordPress and Jamstack

近期,我在Netlify的虛擬Jamstack大會(huì)上主持了一場小組討論,與會(huì)者包括Netlify首席執(zhí)行官M(fèi)att Biilman和Automattic創(chuàng)始人Matt Mullenweg。這場討論被許多人視為“Jamstack與WordPress之爭”。

我個(gè)人對此有很多想法,并認(rèn)為自己更適合擔(dān)任評論員而非主持人。這是我目前最喜歡的技術(shù)討論之一!所以請?jiān)试S我寫一篇博客。

聲明:Automattic和Netlify都是本網(wǎng)站的活躍贊助商。我有一些使用兩者的生產(chǎn)網(wǎng)站,老實(shí)說,我都很喜歡它們,這也是我將嘗試闡述的一個(gè)主要觀點(diǎn)。我恰好正在WordPress網(wǎng)站上撰寫和發(fā)布這篇文章。

歷史回顧

  1. Richard MacManus發(fā)表了文章“WordPress聯(lián)合創(chuàng)始人Matt Mullenweg并非Jamstack的粉絲”,文中引用了他們之間電子郵件對話的內(nèi)容,Matt說了一句:“對于絕大多數(shù)采用Jamstack的人來說,這是一種倒退?!?/li>
  2. Matt Biilmann發(fā)表了回應(yīng)文章“關(guān)于Mullenweg和Jamstack——倒退還是未來?”,其中有一整節(jié)標(biāo)題為“WordPress時(shí)代的終結(jié)”。
  3. 期間,人們紛紛發(fā)表評論。Netlify董事會(huì)成員Ohad Eder-Pressman寫了一封公開信。Sarah Gooding在WP Tavern(由Matt Mullenweg擁有)上總結(jié)了一些活動(dòng)。我也參與其中。
  4. Matt Mullenweg澄清了他的言論,并添加了一些新的評論。

這場辯論于2020年Jamstack虛擬大會(huì)上舉行。目前沒有公開的視頻記錄(抱歉)。

架構(gòu)對比

將Jamstack與WordPress進(jìn)行比較有點(diǎn)奇怪。真正可比的是它們都是構(gòu)建網(wǎng)站時(shí)可能選擇的途徑。這篇文章的大部分內(nèi)容都會(huì)牢記這一點(diǎn),并以此方式比較兩者。它們之所以不能直接比較,是因?yàn)椋?/p>

  • Jamstack是對一種架構(gòu)理念的寬泛描述,該理念鼓勵(lì)在CDN上使用靜態(tài)文件,并使用JavaScript訪問的服務(wù)來滿足任何動(dòng)態(tài)需求。
  • WordPress是基于LAMP架構(gòu)的CMS。

這兩者并非完全相同。

如果我們暫時(shí)只關(guān)注架構(gòu),那么比較的對象將是:

  • 靜態(tài)托管 服務(wù)
  • LAMP

靜態(tài) 服務(wù)的示例是使用Netlify進(jìn)行托管(這是靜態(tài)的),并使用服務(wù)來完成任何需要完成的動(dòng)態(tài)操作。也許您使用Netlify自己的表單和身份驗(yàn)證功能以及Hasura進(jìn)行數(shù)據(jù)存儲。

在LAMP架構(gòu)中,您使用MySQL存儲數(shù)據(jù),因此您無需使用外部服務(wù)。您還可以使用PHP。因此,有了這些(以及開源軟件),您就擁有了身份驗(yàn)證所需的一切。但這并不意味著您從不使用服務(wù);只是因?yàn)槟呀?jīng)擁有服務(wù)器上的更多技術(shù),所以您使用服務(wù)的頻率較低。

Matt B. 將LAMP架構(gòu)稱為“單體架構(gòu)”。Matt M. 對此表示異議,并將其稱為“集成方法”。我不是計(jì)算機(jī)科學(xué)家,但我認(rèn)為這兩種說法都有道理。以下是維基百科的解釋:

[…] 單體應(yīng)用程序描述的是一個(gè)單層軟件應(yīng)用程序,其中用戶界面和數(shù)據(jù)訪問代碼組合在一個(gè)程序中。

根據(jù)此定義,WordPress似乎確實(shí)是一個(gè)單體架構(gòu),但維基百科文章繼續(xù)說道:

[…] 單體應(yīng)用程序描述的是一個(gè)設(shè)計(jì)時(shí)沒有模塊化的軟件應(yīng)用程序。

從這個(gè)角度來看,似乎WordPress不符合單體架構(gòu)的定義。WordPress的鉤子和插件架構(gòu)是模塊化的。??♂?

聽聽這兩位大佬就此進(jìn)行深入探討將會(huì)很有趣,但軟件就是軟件。一個(gè)自托管的WordPress網(wǎng)站運(yùn)行在擁有完整技術(shù)堆棧的服務(wù)器上。充分利用該服務(wù)器是有意義的(即集成)。在Jamstack方法中,服務(wù)器是抽象的。您需要執(zhí)行的所有其他操作都拆分為不同的服務(wù)(即非集成)。

WordPress方法并不意味著您從不使用外部服務(wù)。在這兩種架構(gòu)中,您都可能使用Stripe之類的電子商務(wù)API。您可能使用Cloudinary之類的服務(wù)來進(jìn)行強(qiáng)大的媒體存儲和服務(wù)。甚至WordPress的Jetpack服務(wù)(我使用并喜歡它)也為自托管的WordPress網(wǎng)站帶來了強(qiáng)大的功能,它像第三方服務(wù)一樣運(yùn)行,通過將資產(chǎn)托管和搜索技術(shù)轉(zhuǎn)移到云服務(wù)器上來實(shí)現(xiàn)。兩種架構(gòu)都是技術(shù)的集合。

兩種架構(gòu)都不是“紙牌屋”,也不比另一種更脆弱。所有網(wǎng)站都可能適用“其強(qiáng)度取決于其最薄弱的環(huán)節(jié)”的比喻。如果WordPress插件發(fā)布了錯(cuò)誤的版本或在上傳時(shí)以某種方式損壞,它可能會(huì)導(dǎo)致我的網(wǎng)站出現(xiàn)問題,直到我修復(fù)它為止。如果我的無服務(wù)器數(shù)據(jù)庫的API密鑰無效,我的Jamstack網(wǎng)站可能會(huì)出現(xiàn)問題,直到我修復(fù)它為止。如果Stripe宕機(jī),在我恢復(fù)服務(wù)之前,我將無法在任何類型的網(wǎng)站上銷售任何產(chǎn)品。

定價(jià)

WordPress.com有一個(gè)免費(fèi)計(jì)劃,這絕對是一個(gè)可以構(gòu)建網(wǎng)站的地方。(我有幾個(gè)。)但是,除非您使用的是每月25美元的商業(yè)計(jì)劃,否則您實(shí)際上無法訪問開發(fā)人員級別的功能。自托管的WordPress本身是開源且免費(fèi)的,但是您找不到免費(fèi)啟動(dòng)自托管WordPress網(wǎng)站的地方。它的起步價(jià)格很低,然后會(huì)逐漸增加。您需要LAMP托管才能運(yùn)行WordPress。以下是相當(dāng)便宜的托管計(jì)劃:

  • Bluehost的“共享”計(jì)劃起價(jià)為每月3.95美元。
  • Flywheel的最低計(jì)劃為每月14美元。(本網(wǎng)站使用的是Flywheel的高級計(jì)劃。)
  • Media Temple的WordPress專用托管起價(jià)為每月20美元。(本網(wǎng)站很長時(shí)間都使用的是Media Temple的高級計(jì)劃。)
  • Automattic的Pressable服務(wù)有一個(gè)起價(jià)為每月25美元的計(jì)劃。

一開始就需要花錢。

Jamstack更常見的是免費(fèi)起步,然后在不同的時(shí)間點(diǎn)產(chǎn)生成本。由于Jamstack比較新,感覺市場仍在摸索之中。

  • Vercel在您需要團(tuán)隊(duì)成員或密碼保護(hù)網(wǎng)站等功能之前是免費(fèi)的。單個(gè)密碼保護(hù)網(wǎng)站每月150美元。您可以將基本身份驗(yàn)證添加到任何帶有Apache的服務(wù)器上,無需額外費(fèi)用。
  • Netlify非常相似,在更高的計(jì)劃中解鎖功能,并提供按站點(diǎn)付費(fèi)的功能,例如分析(每月9美元)和身份驗(yàn)證(5000個(gè)活躍用戶每月99美元)。
  • AWS Amplify免費(fèi)起步,但與AWS上的所有內(nèi)容一樣,您的使用情況在很多層面上都是按量計(jì)費(fèi)的,例如構(gòu)建分鐘數(shù)、存儲和帶寬。他們有一個(gè)示例計(jì)算,一個(gè)網(wǎng)絡(luò)應(yīng)用程序每天有10000個(gè)活躍用戶,每月更新兩次,每月成本為65.98美元。
  • Azure Static Web Apps尚未發(fā)布定價(jià),但幾乎肯定會(huì)有免費(fèi)層或免費(fèi)使用或某種方式。

所有這些都提醒我們,Netlify并非Jamstack領(lǐng)域的唯一玩家。Jamstack只是意味著靜態(tài)托管加上服務(wù)。

您不能做出像Jamstack更便宜這樣的籠統(tǒng)陳述。這過分依賴于網(wǎng)站的使用情況和需求。對于高使用量和大量高級服務(wù),Jamstack(就像無服務(wù)器一樣)可能會(huì)變得非常昂貴。Jamstack表示他們的企業(yè)定價(jià)起價(jià)為每月3000美元,雖然您可以獲得身份驗(yàn)證、表單和媒體處理等功能,但您不會(huì)獲得CMS或任何數(shù)據(jù)存儲,這可能會(huì)使您的成本大幅增加。

雖然這個(gè)WordPress網(wǎng)站不是企業(yè)級的,但我可以告訴您,它需要大約每月1000美元的服務(wù)器,這假設(shè)Cloudflare位于其前面,以幫助減少直接到主機(jī)的帶寬,以及Jetpack處理媒體托管和搜索功能。Mailchimp發(fā)送我們的時(shí)事通訊。Wufoo為我們的表單提供支持。我們還有付費(fèi)插件,例如Advanced Custom Fields Pro和一些WooCommerce附加組件。這還不是全部??傆?jì)可能每月幾千美元。這并非集成方法獨(dú)有,但有助于說明WordPress網(wǎng)站的成本也可能相當(dāng)高。他們沒有公布價(jià)格(企業(yè)常用的策略),但Automattic自己的WordPress VIP托管服務(wù)的價(jià)格肯定在四位數(shù)以上,然后您還需要添加第三方內(nèi)容。

底線:這里沒有定價(jià)方面的重大變化。

性能

80%的網(wǎng)頁性能是前端問題。

這是事實(shí),但也建立在服務(wù)器的基礎(chǔ)上(占最初20%)。世界上最快的界面如果服務(wù)器的第一個(gè)請求需要幾秒鐘才能返回,就不會(huì)感覺很快。如果您想要一個(gè)快速的網(wǎng)站,您必須確保第一個(gè)請求非常快。

你知道什么超級快嗎?全球CDN提供靜態(tài)文件。無論后端的服務(wù)器、托管或CMS情況如何,這都是您想要實(shí)現(xiàn)的目標(biāo)。雖然這是Jamstack(靜態(tài)CDN支持的托管)的基礎(chǔ),但這并不意味著WordPress無法做到這一點(diǎn)。

您將包含靜態(tài)內(nèi)容的index.html文件放在Netlify上,它將非常快。也許您的靜態(tài)網(wǎng)站生成器會(huì)生成該文件(值得指出的是,該文件很可能從WordPress獲取內(nèi)容)。這非常棒。

默認(rèn)情況下,WordPress不會(huì)生成可在全球CDN上緩存的靜態(tài)文件。WordPress從單個(gè)來源響應(yīng)請求,運(yùn)行PHP,然后向數(shù)據(jù)庫請求內(nèi)容,然后組裝響應(yīng),最后返回頁面。這可能很快,但遠(yuǎn)不如全球CDN上的靜態(tài)文件穩(wěn)定,而且更容易被請求壓垮。

WordPress主機(jī)知道這一點(diǎn),他們試圖在托管級別解決這個(gè)問題??纯碬P Engine的方法。無需您執(zhí)行任何操作,他們使用頁面緩存,以便網(wǎng)站基本上可以返回靜態(tài)資產(chǎn),而無需運(yùn)行PHP或訪問數(shù)據(jù)庫。他們還采用了各種其他緩存技術(shù),包括與Cloudflare合作以實(shí)現(xiàn)最佳緩存效果。在我寫這篇文章的時(shí)候,我的shoptalkshow.com網(wǎng)站實(shí)際上宕機(jī)了。我寫信給主機(jī)Flywheel,看看發(fā)生了什么。事實(shí)證明,當(dāng)我進(jìn)入那里打開一個(gè)暫存站點(diǎn)時(shí),我切換了一個(gè)錯(cuò)誤的開關(guān),關(guān)閉了他們的緩存。該網(wǎng)站無法處理流量,直接崩潰了。將緩存開關(guān)重新打開立即解決了問題。我沒有在網(wǎng)站前面使用Cloudflare,但我應(yīng)該使用。

Cloudflare是使WordPress速度更快的神奇秘訣的一部分。只需將其放在自托管WordPress網(wǎng)站的前面,就能在提高速度和可靠性方面發(fā)揮巨大作用。缺少的部分之一是HTML本身的出色緩存,他們本月才解決了這個(gè)問題,現(xiàn)在也可以緩存了。有趣的是,緩存WordPress意味著將請求緩存為靜態(tài)HTML和靜態(tài)資產(chǎn),并從全球CDN提供服務(wù),這最終也就是Jamstack的本質(zhì)。

Matt M.提到WordPress.com使用在特定流量級別啟動(dòng)的全球CDN。我不確定是不是Cloudflare,但我不會(huì)懷疑。

在WordPress網(wǎng)站前面使用Cloudflare后,我看到的第一個(gè)響應(yīng)數(shù)字與沒有Cloudflare的Netlify網(wǎng)站相同(因?yàn)樗麄儾唤ㄗh在Netlify托管的網(wǎng)站前面使用Cloudflare)。這是兩位數(shù)毫秒級的數(shù)字,非常好。

從這個(gè)基礎(chǔ)出發(fā),關(guān)于性能的任何討論都將變得特定于前端。無論后端的服務(wù)器、托管或CMS情況如何,前端速度策略都是相同的。

安全性

關(guān)于WordPress網(wǎng)站被黑客攻擊的故事比Jamstack網(wǎng)站多得多。但說WordPress安全性較低是否公平?WordPress已經(jīng)存在了大約二十年,其上構(gòu)建的網(wǎng)站數(shù)量比Jamstack多幾個(gè)數(shù)量級。撇開安全性不談,考慮到這些數(shù)字,您將從WordPress那里聽到更多故事。

Matt M提到whitehouse.gov使用WordPress,這顯然是一個(gè)需要最高安全級別的網(wǎng)站。這并不是說WordPress本身是不安全的軟件。關(guān)鍵在于你如何使用它。你的密碼不安全嗎?無論你使用什么平臺,這都是不安全的。服務(wù)器本身通過文件權(quán)限或訪問級別不安全嗎?這并非完全是軟件的錯(cuò),但你可能正因?yàn)檐浖幱谶@種境地。你運(yùn)行的是最新版本的WordPress嗎?使用情況充其量是分散的,版本越舊,安全性就越低。棘手。

考慮攻擊媒介可能更有意思。也就是說,在哪些點(diǎn)可能被黑客攻擊。如果您的靜態(tài)文件位于靜態(tài)托管上,我認(rèn)為可以肯定地說攻擊媒介相當(dāng)少。但是,仍然有一些:

  • 您的托管帳戶可能被黑客攻擊
  • 您的Git倉庫可能被黑客攻擊
  • 您的Cloudflare帳戶可能被黑客攻擊
  • 您的域名可能被盜(確實(shí)會(huì)發(fā)生)

WordPress網(wǎng)站也是如此,只是還有其他攻擊媒介,例如:

  • 服務(wù)器端代碼:XSS、不良插件、遠(yuǎn)程執(zhí)行等。
  • 數(shù)據(jù)庫漏洞
  • 運(yùn)行舊版本的WordPress
  • 登錄系統(tǒng)就在網(wǎng)站本身,例如壞人可以攻擊/wp-login.php

我認(rèn)為可以公平地說,WordPress網(wǎng)站的攻擊媒介更多,但任何網(wǎng)站都有很多媒介。任何網(wǎng)站的托管帳戶都是一個(gè)主要的媒介。DNS鏈中的任何內(nèi)容。任何具有登錄信息的第三方服務(wù)。任何具有API密鑰的內(nèi)容。

個(gè)人經(jīng)驗(yàn):這個(gè)網(wǎng)站使用WordPress,從未被黑客攻擊過,但這并非因?yàn)闆]有嘗試。我的確感覺我需要比僅由靜態(tài)網(wǎng)站生成器構(gòu)建的網(wǎng)站更多地考慮WordPress網(wǎng)站的安全性。

擴(kuò)展性

擴(kuò)展任何方法都需要花錢。這個(gè)WordPress網(wǎng)站并沒有大規(guī)模擴(kuò)展,但確實(shí)需要比入門級服務(wù)器要求更高的擴(kuò)展。我通過Cloudflare提供所有流量,因此過去30天的峰值數(shù)據(jù)顯示我每月提供5 TB的帶寬。

在Netlify商業(yè)計(jì)劃中(每月99美元可獲得600 GB的流量,然后每額外100 GB收取20美元),計(jì)算結(jié)果為979美元。還記得我之前說過這個(gè)網(wǎng)站需要大約每月1000美元的服務(wù)器嗎?我在運(yùn)行這些數(shù)字之前就寫了這些內(nèi)容,所以非常接近(真棒)。在這個(gè)網(wǎng)站的規(guī)模上,Jamstack與WordPress不相上下。所有主機(jī)都會(huì)對帶寬收費(fèi),并有超額收費(fèi)的上限。Amplify對超過15 GB每月上限的帶寬每GB收取0.15美元。Flywheel(我的WordPress主機(jī))根據(jù)每月的訪問者上限收費(fèi),超過上限后,每1000人收取1美元。

WordPress擴(kuò)展的故事是:

  • 使用能夠處理它并擁有自己成熟緩存策略的主機(jī)。
  • CDN所有內(nèi)容(這通常意味著在前面放置Cloudflare)。
  • 最終,您將為此付費(fèi)。

Jamstack擴(kuò)展的故事是:

  • 主機(jī)和服務(wù)都是為了擴(kuò)展而構(gòu)建的。
  • 您不必過多考慮這項(xiàng)服務(wù)能否處理這個(gè)問題,或者我是否需要遷移?之類的擴(kuò)展問題。
  • 您需要更多地考慮每個(gè)服務(wù)的每個(gè)方面都會(huì)有需要關(guān)注的定價(jià)這一事實(shí)。
  • 最終,您將為此付費(fèi)。

我不得不遷移我的WordPress托管,找到符合網(wǎng)站當(dāng)前需求的主機(jī)。遷移WordPress網(wǎng)站并非易事,但比遷移到另一個(gè)CMS容易得多。例如,如果您在無頭CMS上構(gòu)建了一個(gè)Jamstack網(wǎng)站,而該CMS的價(jià)格變得太高,那么遷移的成本比切換主機(jī)更大。

我喜歡Dave Rupert前幾天(在Slack對話中)關(guān)于比較兩者性能的內(nèi)容:

Jamstack:使用任何東西來構(gòu)建你的東西,有一些附加組件可以幫助你,并使用我們的東西將其部署到CDN,這樣它就不會(huì)崩潰。

WordPress:使用我們的東西來構(gòu)建你的東西,有一些附加組件可以幫助你,你必須使用某些主機(jī)才能防止它崩潰。

還有其他類型的“擴(kuò)展”。我想到的是用戶數(shù)量之類的東西。這是各種服務(wù)用于定價(jià)層級的一種可以理解的指標(biāo)。但在WordPress中這是免費(fèi)的。您可以擁有任意數(shù)量的用戶,并擁有任意數(shù)量的細(xì)致權(quán)限。這只是CMS,因此添加其他服務(wù)仍然可能按用戶收費(fèi)。Vercel或Netlify對團(tuán)隊(duì)帳戶按用戶收費(fèi)。Contentful(一個(gè)流行的無頭CMS)的團(tuán)隊(duì)起價(jià)為每月489美元。如果您需要免費(fèi)帳戶無法提供的任何功能,即使是GitHub的團(tuán)隊(duì)層級也需要每用戶4美元。

分離前端和后端

這是讓人們對使用Jamstack構(gòu)建網(wǎng)站感到興奮的一大因素。如果我的網(wǎng)站的所有功能和內(nèi)容都在API的后面,那么前端就可以隨意構(gòu)建。

  • 想構(gòu)建一個(gè)全靜態(tài)網(wǎng)站?好的,在構(gòu)建過程中訪問該API并執(zhí)行此操作。
  • 想使用React或Vue或其他任何東西構(gòu)建一個(gè)客戶端渲染的網(wǎng)站?很好,客戶端訪問API。
  • 想拆分中間,預(yù)渲染一些,客戶端渲染一些,服務(wù)器端渲染一些?酷,這是一個(gè)API,您可以隨意訪問它。

這種靈活性在全新構(gòu)建中很不錯(cuò),但人們也同樣對理論上的未來靈活性感到興奮。如果所有功能和內(nèi)容都是API驅(qū)動(dòng)的,那么您就可以完全分離前端和后端,這意味著您將來可以更靈活地更改任何一方。

  • 只要您的API繼續(xù)輸出前端期望的內(nèi)容,您就可以重新架構(gòu)后端而不會(huì)影響前端。
  • 只要您獲得所需的數(shù)據(jù),您就可以重新架構(gòu)前端而不會(huì)影響后端。

對于特定規(guī)模和規(guī)模的網(wǎng)站,這種分離感覺“未來安全”。我無法準(zhǔn)確指出這些規(guī)模數(shù)字是多少,但它們確實(shí)存在。

如果您曾經(jīng)做過任何主要的網(wǎng)站重新架構(gòu)只是為了適應(yīng)一方或另一方,那么遷移到一個(gè)分離后端和前端的系統(tǒng)肯定感覺是一個(gè)明智的舉動(dòng)。

您可以分離WordPress網(wǎng)站(我們將在“同時(shí)使用兩者”部分討論),但默認(rèn)情況下,WordPress是一種非常集成的方案,其中前端是使用非常WordPress特定的API從PHP中的主題構(gòu)建的。根本沒有分離。

開發(fā)人員體驗(yàn)

Jamstack在很大程度上優(yōu)先考慮了開發(fā)人員體驗(yàn)(DX)。我聽說有人稱之為“局部最優(yōu)”,這意味著Jamstack的設(shè)計(jì)圍繞本地開發(fā)(和本地開發(fā)人員)體驗(yàn)進(jìn)行。

  • 您應(yīng)該在本地工作。您在自己的舒適(本地、快速、自定義)開發(fā)環(huán)境中工作。
  • Git是第一公民。您推送到您的生產(chǎn)分支(例如master或main),然后您的構(gòu)建過程運(yùn)行,您的網(wǎng)站就會(huì)部署。您甚至可以為每個(gè)拉取請求獲得生產(chǎn)網(wǎng)站的預(yù)覽URL,這是一個(gè)令人印象深刻的強(qiáng)大功能。
  • 使用您喜歡的任何工具。您想在Hugo中預(yù)構(gòu)建一個(gè)網(wǎng)站?盡管去做。您在學(xué)校學(xué)習(xí)了create-react-app?盡管使用。想嘗試一下最新的框架?盡管嘗試。您可以自由地按照自己的方式構(gòu)建,利用您可以構(gòu)建和部署存儲庫中任何您想要的文件夾這一事實(shí)。
  • 不必做的事情也很重要。您不必處理HTTPS,您不必處理緩存,您不必?fù)?dān)心文件權(quán)限,您不必配置CDN。即使是高級開發(fā)人員也欣賞不必做更多事情。

這并不是說WordPress沒有考慮開發(fā)人員體驗(yàn)(例如,他們有一個(gè)CLI,它可以執(zhí)行有用的操作,例如搭建塊),但我認(rèn)為DX對我來說并不像項(xiàng)目核心那樣重要。

  • 在本地運(yùn)行WordPress很棘手,需要您以某種方式運(yùn)行(X)AMP堆棧,這涉及到臭名昭著的難以捉摸的第三方軟件。感謝Local by Flywheel。有一些指導(dǎo),但感覺不像是一個(gè)優(yōu)先事項(xiàng)。
  • 應(yīng)該將什么放入Git?直到今天,我仍然不太清楚,但我基本上已經(jīng)決定使用整個(gè)/wp-content文件夾。對我來說,感覺奇怪的是沒有指導(dǎo)或明顯的最佳實(shí)踐。
  • 您完全需要自己負(fù)責(zé)部署。即使是WordPress專用主機(jī)也沒有真正做到這一點(diǎn)。這在很大程度上只是:這是您的SFTP憑據(jù)
  • 即使您設(shè)置了良好的本地開發(fā)和部署管道(我對我的管道很滿意),但這并不能真正幫助處理數(shù)據(jù)庫的移動(dòng),因此您也需要自己負(fù)責(zé)。

這些都是可以解決的問題,WordPress社區(qū)非常龐大,您可以在其中找到大量相關(guān)信息,但我認(rèn)為可以公平地說,WordPress并沒有將DX作為核心。即使過了這么多年,它仍然有點(diǎn)像狂野西部。

事實(shí)上,我發(fā)現(xiàn),由于對健康的本地開發(fā)環(huán)境的鼓勵(lì)被邊緣化,許多人根本就沒有本地開發(fā)環(huán)境。這是軼事,但現(xiàn)在我已經(jīng)兩次發(fā)現(xiàn)自己參與了其他人的網(wǎng)站,這些網(wǎng)站完全是僅生產(chǎn)環(huán)境的。如果它們是非常簡單的網(wǎng)站,并且在很大程度上具有默認(rèn)行為,那就另當(dāng)別論了,但這些網(wǎng)站并非如此。它們非常復(fù)雜(比這個(gè)網(wǎng)站復(fù)雜得多),涉及公共用戶登錄、付費(fèi)會(huì)員和權(quán)限、頁面構(gòu)建器、自定義簡碼、自定義CSS以及大量活動(dòng)部件。這讓我非常害怕。我不想碰任何東西。他們正在現(xiàn)場編輯PHP以使事情正常工作——正如人們開玩笑地稱之為的那樣,牛仔式編碼。一個(gè)語法錯(cuò)誤,網(wǎng)站就會(huì)崩潰,甚至可能是您正在查看的頁面。

WordPress在沒有特別好的DX的情況下為如此龐大的網(wǎng)絡(luò)提供動(dòng)力,這非常有趣。如果沒有DX,就沒有Jamstack。這完全是面向開發(fā)人員的。對于WordPress,大多數(shù)網(wǎng)站可能根本沒有開發(fā)人員。它被安裝(或者在WordPress.com的情況下被激活),然后網(wǎng)站所有者從那里開始。網(wǎng)站所有者就像開發(fā)人員一樣,他們擁有很大的權(quán)力,但可能根本沒有編寫任何代碼。

為此,我想說WordPress比DX更關(guān)注UX,這是這一切中非常重要的一部分……

CMS和最終用戶UX

WordPress是一個(gè)非常好的CMS。即使不喜歡它,也有很多人喜歡它,而且數(shù)據(jù)可以說明一切。當(dāng)您決定使用WordPress構(gòu)建網(wǎng)站時(shí),您會(huì)獲得大量構(gòu)建幾乎任何您想要類型的網(wǎng)站的能力。使用WordPress不太可能出現(xiàn)哎呀,我把自己逼到死胡同了的情況。

這是一件大事。Jenn指出了這一點(diǎn),她指出使用WordPress的人比開發(fā)人員的需求更重要。

WordPress可以做非常多的事情:

  • 博客(或任何類型的以內(nèi)容為中心的CMS風(fēng)格的網(wǎng)站)……
    • 帶有內(nèi)容預(yù)覽,這在Jamstack中是可能但棘手的
  • 處理用戶/權(quán)限……
    • 在管理員/CMS級別,以及
    • 在面向用戶級別(例如論壇、訂閱、社交等)
  • 電子商務(wù)
  • 處理表單
  • 處理插件到極致

Jamstack絕對也可以做所有這些事情,但現(xiàn)在是Jamstack處于狂野西部時(shí)代。當(dāng)您查看有關(guān)如何存儲數(shù)據(jù)的教程時(shí),它們通常會(huì)涉及解釋如何為云數(shù)據(jù)庫編寫單個(gè)CRUD函數(shù)。這是底層的東西,它可能非常強(qiáng)大,但它與點(diǎn)擊幾個(gè)按鈕大相徑庭,而這正是WordPress在很多時(shí)候的感覺。

我敢打賭,我可能可以使用Stripe API拼湊出一個(gè)基本的Jamstack電子商務(wù)設(shè)置,這非???。但是,當(dāng)我需要開始考慮庫存管理、運(yùn)輸區(qū)域、產(chǎn)品變體以及誰知道電子商務(wù)領(lǐng)域中還有哪些復(fù)雜的事情時(shí),我會(huì)感到緊張,這讓我希望我有一些非常強(qiáng)大的東西可以幫我完成所有這些工作。

有時(shí),我們開發(fā)人員只是為自己構(gòu)建網(wǎng)站(我做了很多這樣的事情),但我認(rèn)為開發(fā)人員主要是在為其他人構(gòu)建網(wǎng)站。因此,最重要的問題是:我正在構(gòu)建的東西是否能增強(qiáng)我為之構(gòu)建的人們的能力?

無論如何,您都可以實(shí)現(xiàn)良好的網(wǎng)站管理體驗(yàn),但WordPress無疑已經(jīng)證明它在該領(lǐng)域提供了服務(wù),而無需在自定義開發(fā)方面付出太多努力。

不過,Jamstack有一些技巧是我希望在WordPress上實(shí)現(xiàn)的。對我來說,一個(gè)重要的技巧是:用戶提交的內(nèi)容和更新。我現(xiàn)在實(shí)際上有三個(gè)網(wǎng)站受益于此。一個(gè)關(guān)于會(huì)議的網(wǎng)站,一個(gè)關(guān)于無服務(wù)器的網(wǎng)站,以及一個(gè)即將推出的關(guān)于編碼字體的網(wǎng)站。WordPress絕對可以在所有這三個(gè)網(wǎng)站上做得很好。但是,我真正想要的是讓人們能夠以我可以這樣說的方式更新和提交內(nèi)容:是的,看起來不錯(cuò),合并。通過采用Jamstack方法,內(nèi)容位于公共GitHub存儲庫中,任何人都可以參與。

我認(rèn)為這非常棒。它甚至不一定要求公眾中的某個(gè)人了解或理解Git或GitHub,因?yàn)镹etlify CMS具有開放創(chuàng)作的概念,它將整個(gè)貢獻(xiàn)體驗(yàn)保留在瀏覽器中,并提供用于編輯的UI。

同時(shí)使用兩者

這是一個(gè)我經(jīng)??吹奖惶峒暗闹匾獑栴}。即使是Netlify本身也說“沒有對立”。

問題是這樣的:

  • “Jam”中的“A”代表API。在構(gòu)建時(shí)或客戶端使用API來構(gòu)建您的網(wǎng)站。
  • WordPress網(wǎng)站默認(rèn)情況下具有REST API(并且也可以具有GraphQL API)。
  • 因此,在您的Jamstack網(wǎng)站上使用該API獲取CMS數(shù)據(jù)。

是的,完全可以。這有效,人們也在這樣做。我認(rèn)為這很酷。

但是……

  • 在您的Jamstack網(wǎng)站之外運(yùn)行WordPress網(wǎng)站意味著……您正在運(yùn)行WordPress網(wǎng)站以及您的Jamstack網(wǎng)站。這會(huì)產(chǎn)生成本和技術(shù)債務(wù)。
  • 您通常無法獲得WordPress的所有價(jià)值。使用API獲取數(shù)據(jù)可能是您需要做的全部工作,但這與構(gòu)建WordPress主題相比,是一種非常非常不同的網(wǎng)站構(gòu)建方法。您沒有獲得WordPress的其他任何價(jià)值。我想到的是這樣的情況:您找到一個(gè)很酷的插件,它為您的網(wǎng)站添加了一個(gè)花哨的Gutenberg塊。這在WordPress網(wǎng)站上“只需運(yùn)行”即可,但它可能有一些特殊的前端行為,如果您只是從API中提取HTML,則這些行為將不起作用。它可能會(huì)包含一些額外的腳本和樣式,您需要自己弄清楚如何將這些腳本和樣式合并到您的前端托管位置,以及自己維護(hù)更新。

以下是所有都具有獨(dú)特“同時(shí)使用兩者”方法的參與者:

  • Frontity:WordPress的React框架。您可以在其后面運(yùn)行它,并使用Node服務(wù)器,以及您的WordPress網(wǎng)站。Node服務(wù)器將React渲染成HTML,因此您可以為所有頁面進(jìn)行服務(wù)器端渲染,但您仍然在構(gòu)建SPA。
  • WP2Static:一個(gè)WordPress插件,可以構(gòu)建網(wǎng)站的靜態(tài)版本,并在進(jìn)行更改時(shí)自動(dòng)部署它。
  • Strattic:他們?yōu)槟泄軇?dòng)態(tài)WordPress網(wǎng)站(他們稱之為“暫存”),您可以在那里正常使用WordPress。然后您可以選擇部署,他們還會(huì)為您托管網(wǎng)站的靜態(tài)版本。
  • Shifter:Shifter為您托管WordPress網(wǎng)站。您有兩個(gè)選擇:1)無頭運(yùn)行(因此您只是為了獲取數(shù)據(jù)而訪問API,REST或GraphQL)或2)靜態(tài)運(yùn)行(因此,當(dāng)您在WordPress中擁有所有想要的內(nèi)容時(shí),您可以部署它,這將創(chuàng)建網(wǎng)站的靜態(tài)版本,他們也會(huì)托管,或者您可以將其推送到其他地方,例如Netlify)。

還有很多其他方法可以集成兩者。以下是我們的Geoff和Sarah談?wù)撊绾瓮ㄟ^使用帶有REST API的Vue/Nuxt并在Netlify上托管來同時(shí)使用WordPress和Jamstack。

都不使用

以防萬一這一點(diǎn)不清楚,絕對有很多方法可以構(gòu)建網(wǎng)站。如果您正在構(gòu)建一個(gè)Ruby on Rails網(wǎng)站,那不是JamstackWordPress。您可以認(rèn)為它更像WordPress網(wǎng)站,因?yàn)樗枰?wù)器,并且您將使用該服務(wù)器盡可能多地做事情。您也可以認(rèn)為它更像Jamstack,因?yàn)榧词顾皇庆o態(tài)托管,它也鼓勵(lì)使用API和組合服務(wù)。

網(wǎng)絡(luò)很大,伙計(jì)們,這不是零和博弈。我完全期望WordPress繼續(xù)發(fā)展,并且Jamstack繼續(xù)發(fā)展,因?yàn)?em>網(wǎng)絡(luò)本身正在發(fā)展。即使我們只考慮市場份額的百分比,我也仍然認(rèn)為兩者都會(huì)增長,將其他任何內(nèi)容推入更小的部分。

選擇

我甚至不會(huì)在這里討論。這并不是因?yàn)槲冶苊馄唬且驗(yàn)樗鼪]有必要。我沒有看到那里的開發(fā)人員咬著指甲試圖決定使用WordPress還是Jamstack方法來構(gòu)建網(wǎng)站。我們已經(jīng)到了技術(shù)足夠被理解的地步,流程如下:

  1. 穿上合適的衣服
  2. 評估需求和結(jié)果
  3. 選擇技術(shù)

以上是WordPress和Jamstack的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什么是AutoPrefixer,它如何工作? 什么是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個(gè)根據(jù)目標(biāo)瀏覽器范圍自動(dòng)為CSS屬性添加廠商前綴的工具。1.它解決了手動(dòng)維護(hù)前綴易出錯(cuò)的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動(dòng)加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什么是CSS計(jì)數(shù)器? 什么是CSS計(jì)數(shù)器? Jun 19, 2025 am 12:34 AM

csscounterscanautomationallymentermentermentections和lists.1)usecounter-ensettoInitializize,反插入式發(fā)芽,andcounter()orcounters()

CSS:何時(shí)重要(何時(shí)不)? CSS:何時(shí)重要(何時(shí)不)? Jun 19, 2025 am 12:27 AM

在CSS中,選擇器和屬性名不區(qū)分大小寫,而值、命名顏色、URL和自定義屬性則區(qū)分大小寫。1.選擇器和屬性名不區(qū)分大小寫,例如background-color和Background-Color相同。2.值中的十六進(jìn)制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無效。3.URL區(qū)分大小寫,可能導(dǎo)致文件加載問題。4.自定義屬性(變量)區(qū)分大小寫,使用時(shí)需注意大小寫一致。

什么是圓錐級函數(shù)? 什么是圓錐級函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

See all articles