Nasazení a Online
i18n.site
přijímá architekturu jednostránkové aplikace a vstupní stránka webu a obsah webu jsou nasazeny nezávisle.
Po spuštění výše uvedeného překladu se pod adresářem md/out/dev
vygenerují adresáře htm
a v
.
Zde dev
znamená, že je vytvořen na základě konfiguračního souboru .i18n/htm/dev.yml
.
dev
adresář :
Adresář htm
je vstupní stránka webu.
Adresář v
obsahuje obsah webových stránek s čísly verzí.
Místní náhled se nestará o číslo verze a zkopíruje všechny soubory do adresáře out/dev/v/0.1.0
.
Pro oficiální vydání budou změněné soubory zkopírovány do nového adresáře s číslem verze.
Zadejte Konfigurační Soubor S -c
Různé konfigurační soubory vytvoří odpovídající adresáře v adresáři out
.
Například .i18n/htm/main.yml
vytvoří adresář out/main
.
dev.yml
a main.yml
jsou výchozí konfigurace.
dev
je zkratka development
, která označuje vývojové prostředí, používané pro místní náhled a je také výchozím konfiguračním souborem.
ol
je zkratka online
označující online prostředí, které se používá pro oficiální vydání. Je to také výchozí konfigurační soubor při použití parametrů příkazového řádku -n
až npm
k vydání.
Můžete také vytvořit další konfigurační soubory Pomocí --htm_conf
na příkazovém řádku zadejte název konfiguračního souboru, který se má použít:
například:
i18n.site --htm_conf dist --save
Zde --save
představuje číslo verze vydání aktualizace.
Publikujte obsah na npmjs.com
Publikování obsahu do npmjs.com je doporučeným výchozím řešením (viz Front-end Vysoká dostupnost ).
Přihlásit Se & npm
Nainstalujte nodejs
, přihlaste se pomocí npm login
.
Upravte md/.i18n/htm/main.yml
a změňte hodnotu md:
YOUR_NPM_PACKAGE
npmjs.com svůj vlastní název balíčku npm
.
Poté upravte md/.i18n/htm/main.package.json
Spusťte i18n.site --npm
nebo i18n.site -n
v adresáři md
pro překlad a publikování.
Pokud k publikování používáte kontinuální integrační prostředí, není potřeba instalovat nodejs
Stačí zkopírovat přihlášená a publikační oprávnění ~/.npmrc
do prostředí.
Pokud změníte název balíčku v:
v main.yml
, nezapomeňte nejprve odstranit .i18n/v/main
a poté je publikovat.
Proxy Server Publikoval npm
Pokud uživatelé v pevninské Číně narazí na problémy se sítí a nemohou publikovat npm
balíčků, mohou nastavit proměnnou prostředí https_proxy
pro konfiguraci serveru proxy.
Za předpokladu, že port vašeho proxy serveru je 7890
, můžete napsat:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Vlastní Hostovaný Obsah
Pokud chcete obsah hostovat sami, nejprve upravte md/.i18n/htm/main.yml
a změňte v: //unpkg.com/i18n.site
na předponu adresy URL, například v: //i18n-v.xxx.com
.
Zadejte adresář md
a spusťte
i18n.site --htm_conf ol --save
nebo zkratka
i18n.site -c ol -s
Poté nakonfigurujte obsah v adresáři md/out/main/v
na cestu předpony URL nastavenou v v:
.
Nakonec nakonfigurujte čas mezipaměti cesty končící na /.v
až 1s
, jinak nebude nově vydaný obsah okamžitě přístupný.
Čas mezipaměti pro ostatní cesty lze nastavit na jeden rok nebo více, aby se snížily zbytečné požadavky.
Hostovat Obsah Na s3
Pro vlastní hostování obsahu je kromě použití vlastního serveru CDN
běžnou možností použití S3
+
Můžete použít rclone k přihlášení k serveru S3
, poté si prostudovat a upravit následující skript a zkopírovat pouze přírůstkové změny do S3
pro každé vydání.
i18n.site -c ol -s
s3=your-s3
bucket=your-bucket
ver=$(head -1 .i18n/v/main/v.hash | cut -c 2-)
rclone copy --overwrite-dir out/main/htm/v/$ver $s3:/$bucket/$ver
rclone copy out/main/v/.v "$s3:/$bucket/"
Nezapomeňte nakonfigurovat CDN
tak, aby čas mezipaměti cesty končící na /.v
byl 1s
, jinak nebude možné okamžitě přistupovat k nově vydanému obsahu.
Zveřejnit Webové Stránky
Web lze nasadit kdekoli, github page a cloudflare page jsou dobrá volba.
Protože web používá architekturu jednostránkové aplikace , nezapomeňte přepsat cesty URL, které neobsahují .
až index.html
.
Vstupní stránku webu stačí nasadit jednou a není třeba znovu nasazovat vstupní stránku webu pro následné aktualizace obsahu.
Nasadit Na Stránku github
Nejprve klikněte github a vytvořte organizaci Následující název organizace je i18n-demo
jako příklad.
Poté vytvořte sklad i18n-demo.github.io
pod touto organizací (nahraďte prosím i18n-demo
názvem organizace, který jste vytvořili):
Při publikování obsahu v předchozím článku bylo vygenerováno out/main/htm
, zadejte tento adresář a spusťte :
ln -s index.html 404.html
Protože github page
nepodporuje přepisování cesty URL, použije se místo toho 404.html
.
Poté spusťte následující příkaz v adresáři htm
(nezapomeňte nahradit i18n-demo/i18n-demo.github.io.git
svou vlastní adresou skladu) :
git init
git branch -M main
git remote add origin [email protected]:i18n-demo/i18n-demo.github.io.git
git push -u origin main -f
Po vložení kódu počkejte, až se nasazení github page
úspěšně spustí (jak je uvedeno níže), než k němu budete mít přístup.
Pro demo stránku se podívejte na:
https://i18n-demo.github.io
Nasadit Na Stránce cloudflare
Ve cloudflare page s github page
poskytuje přepisování cest a je přátelštější k pevninské Číně a je lépe dostupný.
Nasazení cloudflare page
je obvykle založeno na nasazení github page
výše.
Vytvořte projekt a svažte sklad i18n-demo.github.io
výše.
Proces je znázorněn na obrázku níže:
Kliknutím na Add Account
udělíte přístup organizaci i18n-demo
.
Pokud jste svázali sklad jiné organizace, možná budete muset dvakrát kliknout na Add Account
, abyste autorizovali dvakrát, než se nová organizace zobrazí.
Dále vyberte sklad i18n-demo.github.io
, poté klikněte na Begin setup
a pro další kroky použijte výchozí hodnoty.
Po prvním připojení musíte počkat několik minut, než k němu budete mít přístup.
Po nasazení můžete svázat vlastní název domény.
Po navázání vlastního názvu domény přejděte na název domény a nakonfigurujte přepisování cesty jednostránkové aplikace, jak je znázorněno níže:
Pravidla na výše uvedeném obrázku jsou následující, prosím nahraďte i18n.site
v prvním řádku níže názvem domény, kterou jste svázali.
(http.host in {"i18n.site"}) and not (
substring(http.request.uri.path,-3) in {".js" ".gz"} or
substring(http.request.uri.path,-4) in {".htm" ".rss" ".css" ".svg" ".ico" ".png" ".xml" ".txt"} or
substring(http.request.uri.path,-5) in {".html" ".avif" ".json"} or
ends_with(http.request.uri.path,".webmanifest")
)
Kromě toho nakonfigurujte pravidla mezipaměti, jak je uvedeno níže, a nastavte dobu trvání mezipaměti na jeden měsíc.
Změňte prosím shodu názvu domény ve druhém kroku na obrázku výše na název domény, který jste svázali.
Optimalizace Nasazení Webových Stránek v Pevninské Číně
Chcete-li dosáhnout lepší dostupnosti v síťovém prostředí pevninské Číny, zaregistrujte si nejprve název domény .
Poté použijte úložiště objektů cloudových out/main/htm
v pevninské Číně + Nasaďte následující obsah CDN
.
Pomocí edge computingu můžete přepsat cestu, aby se přizpůsobila jednostránkovým aplikacím, například Baidu Smart Cloud CDN
lze nakonfigurovat takto:
const uri = r.uri, p = uri.lastIndexOf(".");
if (
p < 0 ||
!"|js|css|htm|html|md|avif|json|ico|xml|rss|gz|mp4|png|svg|txt|webmanifest|".includes(
"|" + uri.slice(p + 1) + "|",
)
) {
const ua = r.headersIn["User-Agent"].toLowerCase()
if (/facebookexternalhit|slurp|bot|spider|curl/.test(ua)) {
r.return(
302,
(/baidu|yisou|sogou|360|byte/.test(ua) ? "/zh" : "/en") + r.uri + ".htm",
)
} else {
r.uri = "/index.html"
}
}
r.respHeader(() => {
const t = [], out = r.headersOut;
["Content-MD5", "Age", "Expires", "Last-Modified"].forEach(
i => delete out[i]
)
r.rawHeadersOut.forEach(i => {
const key = i[0].toLowerCase()
if (key.startsWith("x-") || key.startsWith("ohc-")) {
delete out[key]
}
})
out["Cache-Control"] = "max-age=" + 9e5
// Záhlaví odpovědí lze nastavit pro ladění výstupu, například out.XXX = 'MSG';
})
Protože záznam MX
a záznam CNAME
nemohou koexistovat, pokud chcete dostávat e-maily s názvy domén současně, musíte spolupracovat se cname_flatten na úrovni CNAME
do záznamu A
.
Navíc, protože zahraniční poplatky za provoz cloudových prodejců v pevninské Číně jsou poměrně drahé, chcete-li optimalizovat náklady, můžete k dosažení cíle použít bezplatné geografické DNS a vlastní název domény Cloudflare for SaaS ! (jak je uvedeno níže). odklonění dopravy──Směrování dopravy v pevninské Číně Baidu Cloud CDN
, mezinárodní provoz jde cloudflare .
Tato řešení optimalizace nasazení jsou složitější a budou představena v samostatných kapitolách v budoucnu.
Přesměrování Obecného Názvu Domény
Pokud pro generování webu jako hlavního webu používáte i18n.site
, musíte obvykle nakonfigurovat přesměrování celé domény, tedy přesměrování přístupu na *.xxx.com
(včetně www.xxx.com
) na xxx.com
.
Tohoto požadavku lze dosáhnout pomocí Alibaba Cloud CDN
EdgeScript
( anglický dokument / čínský dokument )
Přidejte název domény v Alibaba CDN a zadejte název domény *.xxx.com
až CNAME
v Alibaba Cloud CDN
.
Například konfigurace přesměrování názvu pan-domény *.i18n.site
na obrázku výše je následující:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Nasazení S nginx
Přidejte konfiguraci podobnou následující v odstavci server
v nginx Změňte prosím /root/i18n/md/out/main/htm
na cestu vašeho vlastního projektu out/main/htm
:
location / {
root /root/i18n/md/out/main/htm;
add_header Cache-Control "max-age=9999999";
if ($uri !~* \.(avif|css|html|ico|js|json|png|svg|txt|webmanifest|xml)$) {
rewrite ^ /index.html last;
}
}
Na Základě github action
Spojité Integrace
Chcete-li nakonfigurovat github action
, můžete se podívat na následující:
name: i18n.site
on:
workflow_dispatch:
push:
branches:
- main
- dist
jobs:
i18n:
permissions:
repository-projects: write
contents: write
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: https://i18n.site
uses: i18n-site/github-action-i18n.site@main
with:
I18N_SITE_TOKEN: ${{ secrets.I18N_SITE_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Jak je vidět v konfiguraci, tento pracovní postup se spouští při pushování do větve main
a větve dist
.
Pracovní postup použije k publikování dokumentu konfigurační soubor odpovídající názvu větve. Zde se jako konfigurace publikování použije .i18n/htm/main.yml
a .i18n/htm/dist.yml
.
Pro proces uvolňování dokumentů doporučujeme následující doporučené postupy:
Když jsou změny přeneseny do větve main
, spustí se sestavení dokumentu a jeho nasazení do stanice náhledu (stanice náhledu je k dispozici github page ).
Po potvrzení správnosti dokumentu na webu náhledu bude kód sloučen a odeslán do větve dist
a oficiální sestavení a nasazení budou online.
Implementace výše uvedeného procesu samozřejmě vyžaduje napsat více konfigurací.
Pro skriptování pracovního postupu se můžete obrátit na skutečný projekt github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
a secrets.NPM_TOKEN
v konfiguraci vyžadují konfiguraci tajných proměnných v základně kódu.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
je token publikování balíčku npm
v konfiguraci Navštivte npmjs.com a vytvořte token s oprávněním k publikování (jak je uvedeno níže).
Adresářová Struktura
public
Statické soubory webu, například favicon.ico
, robots.txt
atd.
Soubory ikon zde mohou být generovány pomocí realfavicongenerator.net
.i18n
V adresáři .i18n
jsou konfigurační soubory, překladová mezipaměť atd. z i18n.site
Podrobnosti viz další kapitola "Konfigurace" .
en
Adresář zdrojového jazyka, odpovídající konfiguračnímu souboru en
z fromTo
v .i18n/conf.yml
i18n:
fromTo:
en: zh
Podívejte se prosím na konfiguraci překladu i18