返回任務地圖

能啟動,也要能交接

第 27 堂 · 第 2/3 關 · 觀念 18 分鐘+實作 42 分鐘

查看本堂完整六步
先接任務,準備開始

能啟動,也要能交接,每一步都有依據。

完成版使用同來源apiBase空字串,需從Node服務開啟。靜態上傳不會自動執行API;公開環境必須由講師提供並實測。

這關帶走:從真正後端啟動兩作品,詢問重啟後仍在。

步驟 3/6 · 觀念 18 分鐘

先學一招:後端執行環境、來源與資料都要對應

從真正後端啟動兩作品,詢問重啟後仍在。

帶上你的裝備

  • 自己的delivery/portfolio及delivery/service-site/frontend指定完整檔案
  • delivery/index.html、environment.example.txt、service-site/START_HERE.html及BACKUP_RESTORE.html;秘密不附給AI
  • 公開環境實際資訊或未知清單、本機啟動與同案證據

完成版使用同來源apiBase空字串,需從Node服務開啟。靜態上傳不會自動執行API;公開環境必須由講師提供並實測。

一起拆解:空apiBase代表同來源

本關18分鐘觀念:3分鐘看輸入、6分鐘逐步推演、5分鐘正常與錯誤對照、4分鐘先預測再說明。

這次的輸入

完成版apiBase="",由Node8780同時提供frontend與/api。

http://127.0.0.1:8780/inquiry.html
fetch("/api/services") → 同一來源8780/api/services

這段是觀念縮圖,完整可操作檔案在本關參考成果;請依當前階段判讀,不把片段直接貼到任意位置。

一步一步推演

  1. 依START_HERE啟動Node,不從靜態8791或Pages期待API。
  2. 本機核對同案保存與重啟;正式環境另需HTTPS、持久資料及來源設定。
  3. 缺主機、帳號或公開URL時明示待完成,不用本機ready代替。

正常應看到

接手文件分清已實測本機與待驗正式環境。

常見錯誤對照

apiBase空字串卻從Pages開前端,請求會去Pages/api而不是自己的Node。

先預測,再說明原因

開啟前端的來源不同,空apiBase會讓API網址怎麼改變?

跟著觀察

  1. 先讀「空apiBase代表同來源」的輸入,指出本關實際檔案或資料。
  2. 開啟前端的來源不同,空apiBase會讓API網址怎麼改變?
  3. 依例子逐步說明正常結果與錯誤差別,再記下自己的預測;參考結果不是已完成的實測。
apiBase空字串代表?

選一個試試看,答錯也可以再試。

這是你的實際操作確認,小測不會替你勾選。

步驟 4/6 · 實作 42 分鐘

動手挑戰:能啟動,也要能交接

從真正後端啟動兩作品,詢問重啟後仍在。

先準備

  • 自己的delivery/portfolio及delivery/service-site/frontend指定完整檔案
  • delivery/index.html、environment.example.txt、service-site/START_HERE.html及BACKUP_RESTORE.html;秘密不附給AI
  • 公開環境實際資訊或未知清單、本機啟動與同案證據

自己寫啟動方式、真正API來源與資料持久位置,公開未知列待完成。

照這個順序開始

  1. 依delivery/index啟動Node,從8780開前端。
  2. 請AI只核對同來源config與交付README,列正式環境必要條件。
  3. 本機完成同案讀寫與重啟,再由自己的帳號/講師環境另行驗公開URL與另一裝置。

核對可重現的啟動與部署交接

主要使用 Cursor 內建 AI;先附資料,再送出指令。

1.附上這些檔案與資料
  • 自己的delivery/portfolio及delivery/service-site/frontend指定完整檔案
  • delivery/index.html、environment.example.txt、service-site/START_HERE.html及BACKUP_RESTORE.html;秘密不附給AI
  • 公開環境實際資訊或未知清單、本機啟動與同案證據
2.貼到哪裡
  1. 在 Cursor 開啟自己的本關練習副本,進入內建 AI 對話;正常版與故障副本分開。
  2. 用 @ 附上本關指定檔案,核對完整路徑;補實際觀察、輸入與結果,再貼下方 Prompt。
  3. 先讀回覆與差異,只保存指定範圍;回到瀏覽器實際檢查。版本保存由自己操作,不讓 AI 代替驗收或提交。
3.預期回覆與操作
  • 請AI只核對同來源config與交付README,列正式環境必要條件。
  • 交接文件明列實際值與待測,公開帳號/URL不冒充完成。
4.自己檢查結果
  • 從真正後端啟動兩作品,詢問重啟後仍在。
  • 交接文件明列實際值與待測,公開帳號/URL不冒充完成。
核對可重現的啟動與部署交接 Prompt(可收合)

你是協助零基礎學員的網站開發助手。我使用 Cursor 免費版編輯原生 HTML、CSS、JavaScript;必要時把你提供的內容手動貼入檔案。

情境與本次輸入:兩項作品放delivery/portfolio與delivery/service-site,原正式網站不動。含可操作HTML交付指南與無秘密環境樣板。作品一靜態發布;作品二同來源Node22+及私有持久JSON,需要講師提供實際HTTPS環境、帳號與重啟方式。未提供或未做的公開部署/免費帳號/另一裝置保持待完成,本機不可替代。

本次任務:只把service-site/frontend/config.js的apiBase改空字串以同來源部署,timeout不變;依START_HERE由Node後端開8780前端,不把靜態preview的404當後端成功。整理交付HTML:Node22+、管理密碼只後端環境、私有持久DATA_DIR、PUBLIC_ORIGIN/ALLOWED_ORIGINS實際HTTPS、正式TEACHING_MODE=0、同來源/api代理、重啟/備份方式、同案正常及匿名拒絕驗收。作品一用自己Cloudflare Pages Direct Upload獨立專案,作品二需講師實際可用持久後端;若缺帳號/主機/網址明示待測,不捏造永久免費、mock或部署成功。不操作既有三個站,不自動部署。

請先閱讀我附上的相關檔案或資料,資訊缺漏時精確列出需要補充的項目,不猜檔名、API 或測試結果。說明以繁體中文撰寫,指出檔案與修改位置;檢查結果區分已知、待驗與未完成。只處理學生自己的練習副本,不改現有展示網站,不要求付費訂閱。
Cursor AI 無法使用?改用 ChatGPT 備援

把上方指定的檔案內容、清單與補充資料,連同同一份 Prompt 貼入 ChatGPT 對話。只貼電腦上的路徑,無法讓它讀取你的檔案。

收到程式碼時,先核對檔名與修改位置,再手動存回自己的練習副本;若收到檢查表或補檔步驟,就逐項操作。不要把 Prompt 或程式碼框的反引號貼進 HTML/CSS。

兩邊都受限時,可先看既有參考成果、檢查差異與手動修改;未做過的 AI 生成或公開發布仍記待完成。不要貼入帳密、金鑰或真實個資。

複製只取得 Prompt 文字,檔案需自行在 Cursor 附上;本頁不會呼叫 AI 或自動完成關卡。

卡住時,APPA 給你一點線索

線索 1|先找現象與證據

前端同來源與後端PUBLIC_ORIGIN要一致。

線索 2|再縮小修改範圍

沒公開環境就列待完成,不能用本機替代。

回到自己的作品,逐項檢查

  • 從真正後端啟動兩作品,詢問重啟後仍在。
  • 交接文件明列實際值與待測,公開帳號/URL不冒充完成。
  • 未實際完成的AI、發布或裝置驗收記待完成。
需要對照?看這一關的參考成果

先檢查自己的作品,再對照差異。開啟參考不會算完成。

查看前端參考畫面(完整操作請下載參考包)(另開分頁)

線上只看前端畫面;完整操作請下載。本頁不提供案件API。把參考包解壓到新的資料夾,先讀 OPEN_REFERENCE.html,再啟動隨包後端;不要覆蓋自己的作品或案件。

下載本關可啟動參考包

看參考包啟動與資料保留步驟

尚未完成可以先往下看,之後再回來補做。

保留依據與結果,再帶著作品往下走。

保留自己的修改差異與檢查結果。完成兩項操作確認再往下一關;也可以先閱讀,稍後補做。

關卡紀錄由你自行確認;本頁不會讀取 Cursor 檔案或自動驗收作品。

留下自己的檢查紀錄

這是第 27 堂共用筆記,換關卡仍會保留。未實際做過的操作寫「待完成」。

重設會清除第 27 堂六步勾選,筆記、另一堂進度與網站檔案保留。