← Cloudflare Pages / pages / platform
Známé problémy
Zde je několik známých chyb a problémů týkajících se Cloudflare Pages:
Sestavení a nasazení
-
GitHub a GitLab jsou v současnosti jedinými podporovanými platformami pro automatická sestavení CI/CD. Direct Upload umožňuje integrovat vlastní sestavovací platformu nebo nahrávat soubory přímo z lokálního počítače.
-
Inkrementální sestavení nejsou v Cloudflare Pages v současnosti podporována.
-
Nahrávání
/functionsadresáře prostřednictvím možnosti Direct Upload v dashboardu nefunguje (viz Používání Functions v Direct Upload). -
Commity a PR z forknutých repozitářů náhled nevytvoří. Podpora pro tuto funkci bude doplněna později.
Konfigurace Git
- Pokud nasazujete pomocí integrace Git, nebudete moci později přepnout na Direct Upload. Pokud už ale používáte projekt integrovaný s Gitem a nechcete při každém pushi commitu spouštět nasazení, můžete vypnout/pozastavit automatická nasazení. Případně můžete projekt Pages smazat a vytvořit nový, který bude odkazovat na jiný repozitář, pokud potřebujete tuto vazbu změnit.
Konfigurace sestavení
-
*.pages.devsubdomény momentálně nelze měnit. Pokud potřebujete změnit svou*.pages.devsubdoménu, smažte projekt a vytvořte nový. -
Sestavení Hugo automaticky spouštějí starší verzi. Chcete-li spustit nejnovější verzi Hugo (například
0.101.0), budete muset nastavit proměnnou prostředí. NastavteHUGO_VERSIONna0.101.0nebo verzi Hugo dle vlastního výběru. -
Cloudflare ve výchozím nastavení používá Node
12.18.0v sestavovacím prostředí Pages. Pokud potřebujete novější verzi Node, podívejte se na Stránka konfigurace sestavení pro možnosti konfigurace. -
Pro uživatele přecházející z Netlify: Cloudflare nepodporuje funkci Netlify Forms. Pages Functions jsou k dispozici jako obdoba Netlify Serverless Functions.
Custom Domains
-
V současnosti není možné přidat vlastní doménu s
- zástupný znak, například
*.domain.com. - Worker, který je na dané doméně již směrován.
- zástupný znak, například
-
V současnosti není možné přidat vlastní doménu, na které je již povolena politika Cloudflare Access.
-
Load Balancer od Cloudflare nefunguje s
*.pages.devprojekty;Error 1000: DNS points to prohibited IPse zobrazí. -
Při přidávání vlastní domény se doména neověří, pokud Cloudflare nedokáže ověřit požadavek na SSL certifikát pro daný hostname. Aby se SSL ověřilo, ujistěte se, že Cloudflare Access nebo Cloudflare Worker povoluje požadavky na ověřovací cestu:
http://{domain_name}/.well-known/acme-challenge/*. -
Pokročilé certifikáty nelze použít s Cloudflare Pages, protože Cloudflare for SaaS má prioritizace certifikátů.
Pages Functions
-
Funkce momentálně nepodporuje přidávání ani odebírání polyfillů, takže váš bundler (například webpack) nemusí fungovat.
-
passThroughOnException()momentálně není k dispozici pro Pages Functions v Advanced Mode (tedy pro Pages Functions, které používají_worker.jssoubor). -
passThroughOnException()momentálně nedosahuje stejné odolnosti jako ve Workers. Kód Pages Functions v současnosti obalujeme do try...catch ↗ blok a v případě potřeby zavolatenv.ASSETS.fetch(). To znamená, že u kritických selhání (například překročení limitu CPU času nebo paměti) může přesto dojít k vyvolání chyby.
Povolit Access na vašem *.pages.dev doména
Pokud chcete povolit Cloudflare Access ↗] pro vaše Preview deployments a vaše *.pages.dev doména, musíte:
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte svůj projekt Pages.
-
Přejděte na Nastavení > Povolit zásadu přístupu.
-
Vyberte Správa v zásadě Access vytvořené pro vaše náhledová nasazení.
-
V části Access > Aplikace, vyberte svůj projekt.
-
Vyberte Konfigurovat.
-
V části Public hostname, v Subdoména poli smažte zástupný znak (
*) a vyberte Save. Možná budete muset změnit Název aplikace v tomto kroku, abyste se vyhnuli chybě.
V tomto kroku váš *.pages.dev doména je zabezpečena za Access. Chcete-li znovu zabezpečit svá preview nasazení:
- Vraťte se do svého projektu Pages > Nastavení > Obecné > a znovu vyberte Povolit zásadu přístupu.
- Zkontrolujte, že existují dvě zásady Access, jedna pro vaše
*.pages.devdoména a jednu pro vaše preview nasazení (*.<YOUR_SITE>.pages.dev), byly vytvořeny.
Pokud máte vlastní doménu a chránili jste svůj *.pages.dev doménu za Access, musíte:
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace. Vyberte Vytvořit novou aplikaci > Vlastní hosting a soukromé.
- Vyberte Přidejte veřejný hostname a vyberte svou vlastní doménu z Doména rozbalovací nabídku.
- Nastavte pravidla přístupu, která určují, kdo se dostane na přihlašovací stránku Access.
- Vyberte Vytvořit.
Pokud máte problém, který zde není uveden, dejte to vědět týmu na Cloudflare Workers Discordu. Pozvánku získáte na discord.cloudflare.com ↗, a sdílejte svou zprávu o chybě v kanálu #pages-general.
Odstranění projektu s velkým počtem nasazení
Projekt Pages nemusí být možné smazat, pokud má vysoký počet nasazení (přes 100). Tým Cloudflare tento problém sleduje.
Jako řešení můžete použít wrangler pages deployment delete a smažte nasazení jednotlivě. Jakmile nasazení smažete, budete moci smazat i svůj projekt Pages.
npx wrangler pages deployment delete <DEPLOYMENT_ID> --project-name <PROJECT_NAME>Použijte --force příznak slouží k přeskočení potvrzovací výzvy a k vynucenému smazání aliasovaných nasazení.
Chcete-li odstranit all svá nasazení pro konkrétní název projektu, můžete spustit následující shell skript:
prod_id=""
while :; do
ids=$(npx wrangler pages deployment list --project-name <PROJECT_NAME> --json | jq -r '.[].Id')
to_delete=$(echo "$ids" | grep -v -F -x "$prod_id" | grep .)
[ -z "$to_delete" ] && { echo "Done. Production: $prod_id"; break; }
echo "Deleting $(echo "$to_delete" | wc -l | tr -d ' ') deployments..."
while IFS= read -r id; do
if ! npx wrangler pages deployment delete "$id" --project-name <PROJECT_NAME> --force 2>&1 | tee /tmp/wrangler-del.log | grep -q "Successfully deleted"; then
grep -q "active production deployment" /tmp/wrangler-del.log && prod_id="$id"
fi
done <<< "$to_delete"
doneMějte na paměti, že tímto se nesmaže aktivní produkční nasazení, pokud existuje.
Použití Pages jako originu v Cloudflare Load Balancer
Cloudflare Load Balancing nebude fungovat bez nastavené hlavičky Host. Abyste jako cíl použili projekt Pages, nezapomeňte vybrat Přidejte hlavičku Host když vytvoření poolu, a nastavte hodnotu hlavičky host i adresu endpointu na váš pages.dev domény.
Viz Použití Cloudflare Pages jako originu s kompletním tutoriálem.