ai-lab.oao.tw / sites guide

OpenAI Sites 怎麼用

Back to lab ↗

Field note

把網站當成可以被 agent 持續更新的部署目標

最後更新:2026-07-22

這不是官方文件摘要,而是 AI Lab OAO 目前採用的實戰流程:先讓 Sites 登記一個 site project,再把可部署的版本保存起來,最後明確選擇要不要發布到 production。重點會放在 AI 實作時容易踩雷的地方。

1. 先登記一個 Site

在 ChatGPT app 裡,通常是從 Work 或 Codex 介面開始,描述你要做的 website,讓 ChatGPT 產生 preview,再從 sharing / publish 流程建立正式 Site。這條路比較像手動產品流程:看預覽、調整、選擇權限、按下發布。

Codex CLI 這邊比較像工具流程。 它可以透過 Sites connector 建立 site、保存 version、部署 production,並把 `project_id` 寫進 `.openai/hosting.json`。你仍然要知道它做了什麼,因為 production deployment 不是 preview。

登記後最重要會拿到幾種資料:site title、slug、project id、預設站點網址、access mode、可部署版本記錄。如果要後續自動化,`project_id` 是最關鍵的那個識別碼。

2. 可以自訂網域

Sites 會先給一個平台網址。像這個實驗室也有平台部署網址,但實際公開入口使用自訂網域:

https://ai-lab.oao.tw

自訂網域不是 Sites 幫你買 domain。你要先擁有這個 domain,然後依照 Sites 提供的 DNS records 去設定。AI 可以協助你讀懂 CNAME、A record、TXT verification,但最後 DNS 是在你的 domain provider 那邊生效。

實戰心得: custom domain 成功不代表 SSL 立刻就緒。domain status、provider status、SSL status 要分開看。

3. 它不是傳統網頁空間

傳統網頁空間常見心智模型是「把 `index.html` 丟上去」。Sites 比較接近「保存一個可執行的網站版本」,再把那個 version 發布到 production。

對簡單靜態頁來說,source 可以仍然是 HTML、CSS、JS;但部署時通常還是需要 build,把檔案整理成 Sites runtime 能服務的格式。這也是為什麼 AI 不能只說「我寫好 HTML 了」就算完成。

GitHub 是免費仔的好朋友。 Sites 管 project、version、access、custom domain、runtime env;source code 則交給 GitHub 留底、回溯、協作,讓每一次發布都能知道對應哪個版本。

4. 部署是兩件事

  1. 上傳 / 保存:把目前 source 對應的 build output 保存成 Sites version。
  2. 公布 / 發布:把某個已保存的 version 部署到 production URL。

這兩步要分清楚。保存 version 只是留下可部署版本;發布 production 才會讓公開網址更新。AI 最容易犯的錯,是 build 完或 save version 後就以為已經上線。

對 public site,發布前要再次確認內容沒有私密資料、連結沒有錯、access mode 符合預期。production URL 是正式入口,不是暫時 preview。

AI 踩雷點

  • UTF-8:中文內容不能只在原始檔正常,build output 和 response header 也要明確是 UTF-8。
  • URL cache:改了 CSS 或 JS 但瀏覽器還吃舊檔時,要用明確的 cache bust 版本。
  • save 不等於 publish:保存 Sites version 之後,仍然要部署才會更新公開網站。
  • preview 不等於 production:正式 URL 會被真實訪客看到,不能拿 production 當草稿區。
  • secret 位置:runtime secret 不應該寫進 repo 或 `.openai/hosting.json`,要放 Sites 的環境變數管理。
  • domain 狀態:DNS、domain verification、SSL 是不同狀態,不能看到其中一個 active 就以為全部完成。
  • App 與 git clone:Desktop app 能不能直接操作 git clone、本地 repo 與既有 source flow,還需要多測幾輪;先不要假設 app 和 CLI 的 git 能力完全一樣。