我在 Cloud Storage 渲染前使用 imagekit.io CDN 和next/image組件。在網上看到它與 GAE 標準環境不兼容之前,我有 next/image 作業。這讓我很擔心......即使它正在作業,我想知道是否存在某種低效率,因為 next 無法快取 /tmp 之外的影像。next/image 對我來說是一個神奇的黑匣子。
next.config.js
const nextConfig = {
experimental: {
externalDir: true
},
reactStrictMode: true,
images: {
domains: ["ik.imagekit.io"]
},
distDir: "build"
};
module.exports = nextConfig;
轉向 flex 現在不是一個選擇。我需要知道我是否應該離開下一個/影像。
uj5u.com熱心網友回復:
TL; DR Google App Engine Standard 不是 Next 的好選擇
正如您從教程中指出的那樣:
Nextjs 具有優化的影像組件、增量靜態再生等功能需要在運行時讀取/寫入 nextjs 快取檔案夾。但我們的標準環境僅對 /tmp 目錄具有讀寫權限。
由于無法在運行時撰寫的限制,不適合在 App Engine Standard 上使用 next/image 組件。該結論基于 Google App Engine Standard 和 NextJS 的官方檔案
NextJS(下一個/影像)
影像根據請求動態優化并存盤在
<distDir>/cache/images目錄中。優化后的影像檔案將為后續請求提供服務,直到到期。
谷歌應用引擎標準:
此目錄中的所有檔案都存盤在實體的 RAM 中,因此寫入會
/tmp占用系統記憶體。此外,目錄中的檔案/tmp僅對創建檔案的應用程式實體可用。當實體被洗掉時,臨時檔案被洗掉。
這似乎是使用某些 NextJS 組件的開發人員之間的常見斗爭,這些組件需要寫入/cache在 App Engine Standard 上運行的檔案夾,如GitHub 討論所示:
目前,影像優化器在本地快取影像,在服務器檔案系統中,通常在
.next/cache/images. 雖然這在某些平臺上很好,但托管部署目標限制對檔案系統的寫訪問權限并不少見(例如,Google App Engine 僅提供對記憶體/tmp檔案夾的寫訪問權限)......目前,我們必須使用的唯一選項Google App Engine 中的下一個影像優化是使用自定義服務器,使用_next/images與影像優化器完全相同的處理程式覆寫處理程式
在這個GitHub 問題上:
你有解決這個問題的方法嗎?考慮將我們的營銷網站暫時移至 AWS。無法在 GCP GAE 上使用下一個/影像。
如果您確實需要部署到 GCP GAE,您可以將您的應用程式設定為彈性環境。
See also:
- Anyone managed to use next/Image on GAE?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450611.html
標籤:谷歌应用引擎 谷歌云平台 下一个.js nextjs-图像
上一篇:Mycat 學習筆記
