Nasadenie a Online
i18n.site
využíva architektúru jednostránkovej aplikácie a vstupná stránka webovej lokality a obsah webovej lokality sú nasadené nezávisle.
Po spustení vyššie uvedeného prekladu sa pod adresárom md/out/dev
vygenerujú adresáre htm
a v
.
Tu dev
znamená, že je zostavený na základe konfiguračného súboru .i18n/htm/dev.yml
.
dev
adresár :
Adresár htm
je vstupná stránka webu.
Adresár v
obsahuje obsah webových stránok s číslami verzií.
Lokálny náhľad sa nestará o číslo verzie a skopíruje všetky súbory do adresára out/dev/v/0.1.0
.
Pri oficiálnom vydaní budú zmenené súbory skopírované do nového adresára s číslom verzie.
Zadajte Konfiguračný Súbor S -c
Rôzne konfiguračné súbory vytvoria zodpovedajúce adresáre v adresári out
.
Napríklad .i18n/htm/main.yml
vytvorí adresár out/main
.
dev.yml
a main.yml
sú predvolené konfigurácie.
dev
je skratka development
, označujúca vývojové prostredie, ktoré sa používa na lokálny náhľad a je tiež predvoleným konfiguračným súborom.
ol
je skratka online
označujúca online prostredie, ktoré sa používa na oficiálne vydanie. Je to tiež predvolený konfiguračný súbor pri použití parametrov príkazového riadka -n
až npm
na uvoľnenie.
Môžete tiež vytvoriť ďalšie konfiguračné súbory Použite --htm_conf
v príkazovom riadku na určenie názvu konfiguračného súboru, ktorý sa má použiť:
napríklad:
i18n.site --htm_conf dist --save
Tu --save
predstavuje číslo verzie vydania aktualizácie.
Zverejnite obsah na npmjs.com
Publikovanie obsahu do npmjs.com je odporúčaným predvoleným riešením (pozrite si časť Vysoká dostupnosť rozhrania ).
npm &
Nainštalujte nodejs
, prihláste sa pomocou npm login
.
Upravte md/.i18n/htm/main.yml
a zmeňte hodnotu md:
YOUR_NPM_PACKAGE
ako svoj vlastný názov npm
balíka na npmjs.com
Potom upravte md/.i18n/htm/main.package.json
Ak chcete preložiť a publikovať, spustite i18n.site --npm
alebo i18n.site -n
v adresári md
.
Ak na publikovanie používate prostredie kontinuálnej integrácie, nie je potrebné inštalovať nodejs
Stačí skopírovať prihlásené a publikované oprávnenia ~/.npmrc
do prostredia.
Ak zmeníte názov balíka v:
v main.yml
, nezabudnite najskôr odstrániť .i18n/v/main
a potom ho publikovať.
Proxy Server Zverejnil npm
Ak používatelia v pevninskej Číne narazia na problémy so sieťou a nedokážu zverejniť npm
balíkov, môžu nastaviť premennú prostredia https_proxy
na konfiguráciu proxy servera.
Za predpokladu, že port vášho proxy servera je 7890
, môžete napísať:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Vlastne Hostený Obsah
Ak chcete obsah hostiť sami, najprv upravte md/.i18n/htm/main.yml
a zmeňte v: //unpkg.com/i18n.site
na predponu adresy URL, napríklad v: //i18n-v.xxx.com
.
Zadajte adresár md
a spustite
i18n.site --htm_conf ol --save
alebo skratka
i18n.site -c ol -s
Potom nakonfigurujte obsah v adresári md/out/main/v
na cestu predpony URL nastavenú v v:
.
Nakoniec nakonfigurujte čas vyrovnávacej pamäte cesty končiacej na /.v
až 1s
, inak nebude možné okamžite pristupovať k novo vydanému obsahu.
Čas vyrovnávacej pamäte pre iné cesty možno nastaviť na jeden rok alebo viac, aby sa znížili zbytočné požiadavky.
Hostite Obsah Na s3
Na vlastné hosťovanie obsahu je okrem použitia vlastného servera ďalšou CDN
možnosťou použiť S3
+
Môžete použiť rclone na prihlásenie na server S3
, potom si pozrieť a upraviť nasledujúci skript a skopírovať iba prírastkové zmeny do S3
pre každé vydanie.
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/"
Nezabudnite nakonfigurovať CDN
tak, aby čas vyrovnávacej pamäte cesty končiacej na /.v
bol 1s
, inak nebude možné okamžite pristupovať k novo vydanému obsahu.
Zverejniť Webovú Stránku
Webová stránka môže byť nasadená kdekoľvek, github page cloudflare page sú dobré voľby.
Pretože webová lokalita používa architektúru jednostránkovej aplikácie , nezabudnite prepísať cesty URL, ktoré neobsahujú .
až index.html
.
Vstupnú stránku webovej lokality je potrebné nasadiť iba raz a nie je potrebné ju znova nasadzovať pre následné aktualizácie obsahu.
Nasaďte Na Stránku github
Najprv kliknite sem github ak chcete vytvoriť organizáciu . Nasledujúci názov organizácie je i18n-demo
ako príklad.
Potom vytvorte sklad i18n-demo.github.io
v rámci tejto organizácie (nahraďte i18n-demo
názvom organizácie, ktorý ste vytvorili):
Pri publikovaní obsahu v predchádzajúcom článku sa vygenerovalo out/main/htm
Zadajte tento adresár a spustite :
ln -s index.html 404.html
Pretože github page
nepodporuje prepisovanie cesty URL, použije sa namiesto toho 404.html
.
Potom spustite nasledujúci príkaz v adresári htm
(nezabudnite nahradiť i18n-demo/i18n-demo.github.io.git
vlastnou 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 zatlačení kódu počkajte, kým nasadenie github page
úspešne prebehne (ako je uvedené nižšie), až potom k nemu budete mať prístup.
Pre demo stránku si pozrite:
https://i18n-demo.github.io
Nasadenie Na Stránke cloudflare
cloudflare page V porovnaní s github page
poskytuje prepisovanie cesty a je priateľskejší k pevninskej Číne a odporúča sa používať.
Nasadenie cloudflare page
je zvyčajne založené na nasadení github page
vyššie.
Vytvorte projekt a zviažte sklad i18n-demo.github.io
vyššie.
Proces je znázornený na obrázku nižšie:
Kliknutím na Add Account
udelíte prístup organizácii i18n-demo
.
Ak ste zviazali sklad inej organizácie, možno budete musieť dvakrát kliknúť na Add Account
, aby ste autorizovali dvakrát, kým sa zobrazí nová organizácia.
Ďalej vyberte sklad i18n-demo.github.io
, potom kliknite na Begin setup
a pre ďalšie kroky použite predvolené hodnoty.
Po prvom viazaní musíte počkať niekoľko minút, kým k nemu budete mať prístup.
Po nasadení môžete naviazať vlastný názov domény.
Po naviazaní vlastného názvu domény prejdite na názov domény a nakonfigurujte prepisovanie cesty jednostránkovej aplikácie, ako je uvedené nižšie:
Pravidlá na obrázku vyššie sú nasledovné, prosím nahraďte i18n.site
v prvom riadku nižšie názvom domény, ktorú ste viazali.
(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")
)
Okrem toho nakonfigurujte pravidlá vyrovnávacej pamäte, ako je uvedené nižšie, a nastavte trvanie vyrovnávacej pamäte na jeden mesiac.
Zmeňte zhodu názvu domény v druhom kroku na obrázku vyššie na názov domény, ktorý ste viazali.
Optimalizácia Nasadenia Webových Stránok v Pevninskej Číne
Ak chcete dosiahnuť lepšiu dostupnosť v sieťovom prostredí pevninskej Číny, najskôr si zaregistrujte názov domény .
Potom použite úložisko objektov cloudových predajcov v Číne + Nasaďte nasledujúci obsah CDN
out/main/htm
Edge computing môžete použiť na prepísanie cesty, aby sa prispôsobila jednostránkovým aplikáciám, napríklad Baidu Smart Cloud CDN
je možné nakonfigurovať 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
// Hlavičky odpovedí možno nastaviť na ladenie výstupu, ako napríklad out.XXX = 'MSG';
})
Pretože záznam MX
a záznam CNAME
nemôžu koexistovať, ak chcete dostávať e-maily s názvom domény súčasne, musíte spolupracovať so cname_flatten na úrovni CNAME
do záznamu A
.
Okrem toho, pretože poplatky za prevádzku cloudových predajcov v pevninskej Číne v zahraničí sú relatívne drahé, ak chcete optimalizovať náklady, môžete na dosiahnutie tohto cieľa použiť bezplatné geografické rozlíšenie a vlastný názov domény DNS Cloudflare for SaaS ! presmerovanie dopravy──Smerovanie dopravy v pevninskej Číne Baidu Cloud CDN
, medzinárodná doprava ide cloudflare .
Tieto riešenia optimalizácie nasadenia sú komplexnejšie a budú predstavené v samostatných kapitolách v budúcnosti.
Všeobecné Presmerovanie Názvu Domény
Ak na vygenerovanie webovej lokality ako hlavnej webovej lokality používate i18n.site
, zvyčajne musíte nakonfigurovať presmerovanie celej domény, teda presmerovanie prístupu na *.xxx.com
(vrátane www.xxx.com
) na xxx.com
.
Túto požiadavku je možné dosiahnuť pomocou Alibaba Cloud CDN
EdgeScript
( anglický dokument / čínsky dokument )
Pridajte názov domény v Alibaba CDN a uveďte názov domény *.xxx.com
do CNAME
v Alibaba Cloud CDN
.
Napríklad konfigurácia presmerovania názvu domény *.i18n.site
na obrázku vyššie je nasledovná:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Nasadiť Pomocou nginx
Pridajte konfiguráciu podobnú nasledujúcej v odseku server
v nginx Zmeňte /root/i18n/md/out/main/htm
na cestu svojho 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áklade github action
Nepretržitej Integrácie
Ak chcete nakonfigurovať github action
, môžete použiť nasledujúce informácie:
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 }}
Ako je možné vidieť v konfigurácii, tento pracovný postup sa spúšťa pri tlačení do vetvy main
a vetvy dist
.
Pracovný postup použije na publikovanie dokumentu konfiguračný súbor zodpovedajúci názvu pobočky. Tu sa ako konfigurácia publikovania použije .i18n/htm/main.yml
a .i18n/htm/dist.yml
.
Pre proces uvoľnenia dokumentu odporúčame nasledujúce osvedčené postupy:
Keď sa zmeny presunú do vetvy main
, spustí sa zostavenie dokumentu a jeho nasadenie do stanice náhľadu (stanica náhľadu je k dispozícii github page ).
Po potvrdení správnosti dokumentu na stránke náhľadu sa kód zlúči a odošle do vetvy dist
a oficiálna zostava a nasadenie budú online.
Samozrejme, implementácia vyššie uvedeného procesu vyžaduje napísanie viacerých konfigurácií.
Skriptovanie pracovného toku si môžete pozrieť v aktuálnom projekte github.com/fcdoc/doc
secrets.I18N_SITE_TOKEN
a secrets.NPM_TOKEN
v konfigurácii vyžadujú, aby ste nakonfigurovali tajné premenné v kódovej báze.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
je token publikovania balíka npm
v konfigurácii Navštívte npmjs.com a vytvorte token s povoleniami na publikovanie (ako je uvedené nižšie).
Adresárová Štruktúra
public
Statické súbory webovej stránky, ako napríklad favicon.ico
, robots.txt
, atď.
Súbory ikon tu môžu byť generované pomocou realfavicongenerator.net
.i18n
V adresári .i18n
sú konfiguračné súbory, prekladová vyrovnávacia pamäť atď. z i18n.site
Podrobnosti nájdete v ďalšej kapitole „Konfigurácia“ .
en
Adresár zdrojového jazyka, ktorý zodpovedá konfiguračnému súboru en
z fromTo
v .i18n/conf.yml
i18n:
fromTo:
en: zh
Pozrite si prosím konfiguráciu prekladu i18