提供靜態檔案

除了處理動態檔案外,應用程式通常還必須提供其他靜態檔案,例如 JavaScript、圖片和 CSS。彈性環境可讓您決定如何為應用程式提供靜態內容。您可以從應用程式直接提供靜態內容、在 Cloud Storage 之類的 GCP 選項上託管靜態內容,或是使用第三方內容傳遞聯播網 (CDN) 提供。

從 App Engine 提供檔案

從應用程式提供檔案通常最為直接了當,但是您應該考慮到下列幾項缺點:

  • 要求提供靜態檔案時,所使用的資源也可能會用於動態要求。
  • 端看您所採用的設定,從應用程式提供檔案可能會導致回應延遲,而這也會影響建立新執行個體以處理負載的時機。

提示:在實際工作環境中,通常最佳做法是在 GCP 中或在外部使用第三方 CDN 從應用程式單獨提供靜態內容。

透過應用程式提供靜態檔案的範例

<html>
<head>
    <meta charset="utf-8" />
    <title>Hello Static World</title>
</head>
<body>
    <p>This is a static html document.</p>
    <p><img src="trees.jpg" /></p>
</body>
</html>

如要啟用提供靜態檔案,請將下列程式碼新增至您的 Startup.cs 檔案中:

app.UseDefaultFiles();
app.UseStaticFiles();

從 GCP 提供檔案

您也可以選擇使用 Cloud CDNCloud Storage 等其他 GCP 儲存空間服務。

從 Cloud Storage 提供檔案

Cloud Storage 可用來為動態網路應用程式託管靜態資產。不直接從應用程式提供檔案,而使用 Cloud Storage 的優點如下:

  • Cloud Storage 在本質上就是當成內容傳遞聯播網使用。根據預設,凡是可公開讀取的物件在全域 Cloud Storage 網路中都能夠快取,因此不需要特別進行設定。
  • 無須向 Cloud Storage 提供靜態資產,因此可減輕應用程式的負載。這種做法可能會大幅降低應用程式的執行成本,實際情況視您擁有的靜態資產數量以及存取的頻率而定。
  • 如果使用 Cloud Storage 存取內容,頻寬費用通常較低。

您可以使用 Cloud SDKCloud Storage API 將資產上傳至 Cloud Storage。

從 Cloud Storage 值區提供資產的範例

這個簡易範例會建立 Cloud Storage 值區並且使用 Cloud SDK 上傳靜態資產:

  1. 建立值區。通常會使用專案 ID 為值區命名,但也可以自行選擇。全域中的值區名稱不得重複。

    gsutil mb gs://<your-bucket-name>
    
  2. 設定 ACL,針對值區中的項目授予讀取存取權。

    gsutil defacl set public-read gs://<your-bucket-name>
    
  3. 將項目上傳到值區。使用 rsync 指令通常可以最快速且最輕鬆地上傳及更新資產。您也可以使用 cp

    gsutil -m rsync -r ./static gs://<your-bucket-name>/static
    

您現在也能透過 https://storage.googleapis.com/<your-bucket-name>/static/... 存取靜態資產。

如要進一步瞭解如何使用 Cloud Storage 來提供靜態資產,包括從自訂網域名稱提供資產的方式,請參閱如何託管靜態網站

如要進一步瞭解如何使用 Cloud Storage API 從應用程式動態上傳、下載及控管檔案,請參閱使用 Cloud Storage

從第三方內容傳遞聯播網提供

您可以使用任何外部第三方 CDN 來提供靜態檔案以及快取動態要求,但應用程式的延遲時間和成本可能會隨之增加。

建議您使用支援 CDN 互連網路的第三方 CDN,才能獲得更好的效能。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
.NET 文件適用的 App Engine 彈性環境