Izvietošana Un Tiešsaistē
i18n.site
izmanto vienas lapas lietojumprogrammu arhitektūru, un vietnes ieejas lapa un vietnes saturs tiek izvietoti neatkarīgi.
Pēc iepriekš minētā tulkojuma palaišanas htm
un v
direktorijs tiks ģenerēts md/out/dev
direktorijā.
Šeit dev
nozīmē, ka tas ir izveidots, pamatojoties uz .i18n/htm/dev.yml
konfigurācijas failu.
dev
direktoriju :
htm
direktorijs ir vietnes ieejas lapa.
v
direktorijā ir vietnes saturs ar versiju numuriem.
Vietējam priekšskatījumam nerūp versijas numurs, un visi faili tiks kopēti uz out/dev/v/0.1.0
direktoriju.
Oficiālai izlaišanai mainītie faili tiks kopēti uz jauno versijas numuru direktoriju.
Norādiet Konfigurācijas Failu Ar -c
Dažādi konfigurācijas faili izveidos atbilstošus direktorijus out
direktorijā.
Piemēram, .i18n/htm/main.yml
izveidos direktoriju out/main
.
dev.yml
un main.yml
ir noklusējuma konfigurācijas.
dev
ir development
saīsinājums, kas norāda izstrādes vidi, ko izmanto lokālajam priekšskatījumam, un tas ir arī noklusējuma konfigurācijas fails.
ol
ir saīsinājums no online
, kas norāda uz tiešsaistes vidi, kas tiek izmantota oficiālai izlaišanai. Tas ir arī noklusējuma konfigurācijas fails, kad izlaišanai tiek izmantoti komandrindas parametri -n
līdz npm
.
Varat arī izveidot citus konfigurācijas failus. Komandrindā izmantojiet --htm_conf
, lai norādītu izmantojamā konfigurācijas faila nosaukumu.
piemēram:
i18n.site --htm_conf dist --save
Šeit --save
apzīmē atjaunināšanas laidiena versijas numuru.
Publicējiet saturu vietnē npmjs.com
Ieteicamais noklusējuma risinājums ir satura publicēšana vietnē npmjs.com
npm & Post
Instalējiet nodejs
, piesakieties ar npm login
.
Rediģējiet md/.i18n/htm/main.yml
un mainiet vērtību md:
YOUR_NPM_PACKAGE
npmjs.com savu npm
pakotnes nosaukumu.
Pēc tam mainiet md/.i18n/htm/main.package.json
Palaidiet i18n.site --npm
vai i18n.site -n
direktorijā md
, lai tulkotu un publicētu.
Ja publicēšanai izmantojat nepārtrauktas integrācijas vidi, nav jāinstalē nodejs
Vienkārši nokopējiet pieteikšanās un publicēšanas atļaujas ~/.npmrc
vidē.
Ja modificējat pakotnes nosaukumu v:
no main.yml
, lūdzu, vispirms izdzēsiet .i18n/v/main
un pēc tam publicējiet to.
Starpniekserveris Publicēja npm
Ja lietotāji kontinentālajā Ķīnā saskaras ar tīkla problēmām un nevar publicēt npm
pakotnes, viņi var iestatīt vides mainīgo https_proxy
lai konfigurētu starpniekserveri.
Pieņemot, ka jūsu starpniekservera ports ir 7890
, varat rakstīt:
https_proxy=http://127.0.0.1:7890 i18n.site -n
Pašmitināts Saturs
Ja vēlaties pats mitināt saturu, vispirms rediģējiet md/.i18n/htm/main.yml
un mainiet v: //unpkg.com/i18n.site
uz URL prefiksu, piemēram, v: //i18n-v.xxx.com
.
Ievadiet md
direktoriju un palaidiet
i18n.site --htm_conf ol --save
vai saīsinājums
i18n.site -c ol -s
Pēc tam konfigurējiet saturu direktorijā md/out/main/v
uz URL prefiksa ceļu, kas iestatīts v:
.
Visbeidzot, konfigurējiet kešatmiņas laiku ceļam, kas beidzas ar /.v
līdz 1s
, pretējā gadījumā tikko izlaistajam saturam nevarēs uzreiz piekļūt.
Citu ceļu kešatmiņas laiku var iestatīt uz vienu gadu vai ilgāk, lai samazinātu nevajadzīgus pieprasījumus.
Mitināt Saturu Uz s3
Lai pašam mitinātu saturu, papildus sava servera izmantošanai vēl CDN
izplatīta iespēja ir izmantot S3
+
Varat izmantot rclone lai pieteiktos S3
serverī, pēc tam skatīt un modificēt šo skriptu un kopēt tikai pakāpeniskās izmaiņas uz S3
katram laidienam.
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/"
Atcerieties konfigurēt CDN
, lai ceļa, kas beidzas ar /.v
kešatmiņas laiks būtu 1s
, pretējā gadījumā tikko izlaistajam saturam nevar piekļūt uzreiz.
Publicēt Vietni
Vietni var izvietot jebkur github page un cloudflare page ir laba izvēle.
Tā kā vietne izmanto vienas lapas lietojumprogrammu arhitektūru, neaizmirstiet pārrakstīt URL ceļus, kas nesatur .
līdz index.html
.
Vietnes ievades lapa ir jāizvieto tikai vienu reizi, un nav nepieciešams atkārtoti izvietot vietnes ievades lapu, lai veiktu turpmākus satura atjauninājumus.
Izvietot github Lapā
Vispirms noklikšķiniet šeit github lai izveidotu organizāciju . Tālāk norādītais organizācijas nosaukums ir i18n-demo
.
Pēc tam šajā organizācijā izveidojiet noliktavu i18n-demo.github.io
(lūdzu, aizstājiet i18n-demo
ar izveidoto organizācijas nosaukumu):
Publicējot saturu iepriekšējā rakstā, ir ģenerēts out/main/htm
Lūdzu, ievadiet šo direktoriju un palaidiet :
ln -s index.html 404.html
Tā kā github page
neatbalsta URL ceļa pārrakstīšanu, tā vietā tiek izmantots 404.html
.
Pēc tam palaidiet šādu komandu direktorijā htm
(neaizmirstiet aizstāt i18n-demo/i18n-demo.github.io.git
ar savu noliktavas adresi) :
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
Pēc koda nospiešanas pagaidiet, līdz github page
izvietošana tiek veiksmīgi palaists (kā parādīts tālāk), pirms varat tam piekļūt.
Demonstrācijas lapu skatiet:
https://i18n-demo.github.io
Izvietot cloudflare Lapā
cloudflare page ar github page
, tas nodrošina ceļu pārrakstīšanu un ir draudzīgāks kontinentālajai Ķīnai, un to ieteicams izmantot.
cloudflare page
izvietošana parasti balstās uz iepriekš norādīto github page
izvietošanu.
Izveidojiet projektu un saistiet augstāk esošo i18n-demo.github.io
noliktavu.
Process ir parādīts zemāk esošajā attēlā:
Lūdzu, noklikšķiniet uz Add Account
, lai piešķirtu piekļuvi organizācijai i18n-demo
.
Ja esat saistījis citas organizācijas noliktavu, iespējams, divreiz jānoklikšķina uz Add Account
, lai divreiz autorizētu, pirms tiks parādīta jaunā organizācija.
Pēc tam atlasiet noliktavu i18n-demo.github.io
, pēc tam noklikšķiniet uz Begin setup
un izmantojiet noklusējuma vērtības turpmākajām darbībām.
Pēc pirmās iesiešanas jums ir jānogaida dažas minūtes, pirms varēsiet tai piekļūt.
Pēc izvietošanas varat saistīt pielāgotu domēna nosaukumu.
Pēc pielāgotā domēna nosaukuma saistīšanas, lūdzu, dodieties uz domēna nosaukumu, lai konfigurētu vienas lapas lietojumprogrammas ceļa pārrakstīšanu, kā parādīts tālāk:
Augšējā attēlā ir šādi noteikumi, lūdzu, nomainiet i18n.site
pirmajā rindā ar jūsu piesaistīto domēna nosaukumu.
(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")
)
Turklāt, lūdzu, konfigurējiet kešatmiņas noteikumus, kā parādīts tālāk, un iestatiet kešatmiņas ilgumu uz vienu mēnesi.
Lūdzu, mainiet domēna nosaukumu, kas atbilst augšējā attēla otrajā darbībā, uz jūsu piesaistīto domēna nosaukumu.
Vietņu Izvietošanas Optimizēšana Kontinentālajā Ķīnā
Ja vēlaties iegūt labāku pieejamības veiktspēju kontinentālās Ķīnas tīkla vidē, lūdzu, vispirms reģistrējiet domēna vārdu .
Pēc tam izmantojiet kontinentālās + mākoņpakalpojumu sniedzēju objektu krātuvi CDN
Izvietojiet šādu saturu out/main/htm
.
Varat izmantot malu skaitļošanu, lai pārrakstītu ceļu, lai pielāgotos vienas lapas lietojumprogrammām. Piemēram, Baidu Smart Cloud CDN
var konfigurēt šādi.
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
// Atbilžu galvenes var iestatīt atkļūdošanas izvadei, piemēram, out.XXX = 'MSG';
})
Tā kā ieraksts MX
un ieraksts CNAME
nevar pastāvēt vienlaikus, ja vēlaties vienlaikus saņemt e-pasta ziņojumus ar domēna nosaukumu, jums ir jāsadarbojas ar cname_flatten , lai CNAME
līmeni iegūtu A
ierakstu.
Turklāt, tā kā mākoņdatošanas pakalpojumu sniedzēju ārzemju maksas kontinentālajā Ķīnā ir salīdzinoši dārgas, ja vēlaties optimizēt izmaksas, varat izmantot Huawei DNS bezmaksas ģeogrāfisko izšķirtspēju un Cloudflare for SaaS pielāgoto domēna nosaukumu (kā parādīts tālāk). satiksmes novirzīšana──Satiksmes maršrutēšana kontinentālajā Ķīnā Baidu Cloud CDN
, starptautiskā satiksme notiek cloudflare .
Šie izvietošanas optimizācijas risinājumi ir sarežģītāki, un nākotnē tie tiks ieviesti atsevišķās nodaļās.
Vispārēja Domēna Vārda Novirzīšana
Ja izmantojat i18n.site
, lai ģenerētu vietni kā galveno vietni, jums parasti ir jākonfigurē visas domēna novirzīšana, tas ir, jānovirza piekļuve uz *.xxx.com
(tostarp www.xxx.com
) uz xxx.com
.
Šo prasību var sasniegt ar Alibaba Cloud CDN
EdgeScript
( angļu valodas dokuments / ķīniešu dokuments ) palīdzību .
Pievienojiet domēna nosaukumu Alibaba CDN un norādiet domēna nosaukumu *.xxx.com
līdz CNAME
pakalpojumā Alibaba Cloud CDN
.
Piemēram, visas domēna nosaukuma novirzīšanas konfigurācija *.i18n.site
attēlā iepriekš ir šāda:
rewrite(concat('https://i18n.site',$uri), 'redirect',301)
Izvietot Ar nginx
server
/root/i18n/md/out/main/htm
nginx 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;
}
}
Pamatojoties Uz github action
Nepārtrauktu Integrāciju
Varat atsaukties uz šo, lai konfigurētu savu github action
:
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 }}
Kā redzams konfigurācijā, šī darbplūsma tiek aktivizēta, nospiežot uz main
zaru un dist
zaru.
Darbplūsma izmantos konfigurācijas failu, kas atbilst filiāles nosaukumam, lai publicētu dokumentu. Šeit kā publicēšanas konfigurācija tiks izmantota attiecīgi .i18n/htm/main.yml
un .i18n/htm/dist.yml
.
Mēs iesakām šādu dokumentu izlaišanas procesa paraugpraksi:
Kad izmaiņas tiek virzītas uz filiāli main
, dokuments tiek aktivizēts, lai izveidotu un izvietotu priekšskatījuma stacijā (priekšskatījuma stacija ir pieejama github page ).
Pēc tam, kad priekšskatījuma vietnē būs apstiprināts, ka dokuments ir pareizs, kods tiks sapludināts un pārsūtīts uz dist
zaru, un oficiālā izveide un izvietošana tiks veikta tiešsaistē.
Protams, lai īstenotu iepriekš minēto procesu, ir jāraksta vairāk konfigurāciju.
Darbplūsmas skriptiem varat atsaukties uz faktisko projektu github.com/fcdoc/doc
Konfigurācijā secrets.I18N_SITE_TOKEN
un secrets.NPM_TOKEN
ir jākonfigurē slepenie mainīgie koda bāzē.
I18N_SITE_TOKEN
i18n.site/token
NPM_TOKEN
ir npm
pakotnes publicēšanas pilnvara konfigurācijā npmjs.com izveidojiet to ar publicēšanas atļaujām (kā parādīts tālāk).
Direktoriju Struktūra
public
Vietnes statiskie faili, piemēram, favicon.ico
, robots.txt
utt.
Šeit esošos ikonu failus var ģenerēt ar realfavicongenerator.net
.i18n
.i18n
direktorijā atrodas i18n.site
konfigurācijas faili, tulkošanas kešatmiņa utt. Sīkāku informāciju skatiet nākamajā nodaļā "Konfigurācija" .
en
Avotvalodas direktorijs, kas atbilst en
no fromTo
in .i18n/conf.yml
konfigurācijas failam
i18n:
fromTo:
en: zh
Lūdzu, skatiet tulkojuma konfigurāciju i18