靜態網站是指所有的網頁都由靜態內容構成,包括用戶端執行的指令碼(例如JavaScript)。您可以通過靜態網站託管功能將您的靜態網站託管到OSS的儲存空間(Bucket),並使用Bucket的訪問網域名稱訪問這個網站。
使用說明
配置靜態網站託管時,您需要指定網站的預設首頁和預設404頁:
預設首頁是您通過瀏覽器訪問靜態網站網域名稱時,OSS返回的網站首頁。
您為預設首頁指定的檔案必須是Bucket根目錄下允許被匿名訪問的檔案。如果您還開通了子目錄首頁,則子目錄下也應存在此檔案。
預設404頁是您通過瀏覽器訪問Bucket內檔案出現404錯誤時,OSS返回的錯誤頁面。
您為預設404頁指定的檔案必須是Bucket根目錄下允許被匿名訪問的檔案。
您可以通過將預設首頁或者預設404頁中指定檔案的讀寫權限ACL設定為public-read
,確保該檔案允許匿名訪問。有關設定檔案讀寫權限ACL的具體步驟,請參見檔案ACL。
注意事項
出於安全考慮,中國內地各地區自2018年09月28日起,非中國內地各地區自2019年09月25日起,通過瀏覽器訪問OSS靜態網頁類型檔案(mimetype為text/html,副檔名包括HTM、HTML、JSP、PLG、HTX、STM):
使用OSS預設網域名稱通過瀏覽器訪問靜態網頁檔案時,Response Header中會自動加上Content-Disposition:attachment。 即從瀏覽器訪問這些檔案時,會以附件形式進行下載。
使用自訂網域名通過瀏覽器訪問靜態網頁檔案時,在瀏覽器支援預覽對應格式的網頁檔案的情況下,預設直接預覽檔案內容。
費用說明
配置樣本
為Bucket開啟靜態網站託管後,您需要將與預設首頁名稱相同的檔案(例如index.html)上傳至目標Bucket,如果Bucket中包含了目錄結構subdir/,則目錄層級下也必須包含index.html檔案。此外,您還需要將與預設404頁名稱相同的檔案(例如error.html)上傳至目標Bucket。Bucket的檔案結構如下所示:
Bucket
├── index.html
├── error.html
├── example.txt
└── subdir/
└── index.html
如果該Bucket綁定了自訂網域名example.com
,且配置的靜態網站預設首頁為index.html,預設404頁為error.html。則通過自訂網域名訪問靜態網站時,根據是否開通了子目錄首頁,訪問規則如下:
未開通子目錄首頁
當您訪問https://example.com/和https://example.com/subdir/時,OSS會返回https://example.com/index.html。
當您訪問https://example.com/example.txt時,正常擷取example.txt檔案。
當您訪問https://example.com/object時,因object不存在,OSS會返回https://example.com/error.html。
已開通子目錄首頁
當您訪問https://example.com/時,OSS會返回https://example.com/index.html。
當您訪問https://example.com/subdir/時,OSS會返回https://example.com/subdir/index.html。
當您訪問https://example.com/example.txt時,正常擷取example.txt檔案。
當您訪問https://example.com/object時,因object不存在,OSS會根據您設定的檔案404規則返回對應資訊:
如果檔案404規則設定為Redirect(預設值),OSS會繼續檢查object/index.html是否存在。如果檔案存在則返回302,並將訪問請求重新導向為https://example.com/object/index.html;如果檔案不存在則返回404,並繼續檢查https://example.com/error.html。
如果檔案404規則設定為NoSuchKey,則直接返回404,並繼續檢查https://example.com/error.html。
如果檔案404規則設定為Index,OSS會繼續檢查object/index.html是否存在。如果檔案存在則返回200,並直接返迴文件內容。如果檔案不存在,則繼續檢查https://example.com/error.html。
操作方式
使用OSS控制台
使用阿里雲SDK
使用命令列工具ossutil
相關API
以上操作方式底層基於API實現,如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見PutBucketWebsite。
常見問題
開啟靜態網站託管功能後是否支援關閉?
更多參考
您可以通過儲存空間(Bucket)託管靜態網站,並讓訪問者通過Bucket綁定的自訂網域名(例如example.com)訪問您的網站。具體操作,請參見使用自訂網域名設定靜態網站託管。
您可以使用React架構,通過OSS的靜態網站託管功能在前端快速部署一個線上可用的單頁應用SPA(Single-Page Application)。具體操作,請參見教程樣本:通過靜態網站受管理的部署單頁應用。