Tīmekļa lietotņu izvietošana, kas balstītas uz JavaScript UI ietvariem

Krista Veske
RSS: Dalīties:
Šis ieraksts ir novecojis!

Ir pagājis nedaudz vairāk nekā gads, kopš uzrakstīju rakstu par to, kā automātiski publicēt mājaslapas izmaiņas, izmantojot Github Actions. Lai gan turpinām runāt par līdzīgu tēmu, šoreiz paskatīsimies soli atpakaļ un publicēsim mājaslapu manuāli. Iemesls tam ir tas, ka esmu informēts, ka mūsu klientu atbalsts bieži saņem jautājumus par to, kā instalēt JS ietvarus mūsu tīmekļa serveros vai kā izvietot uz šiem ietvariem balstītas tīmekļa lietotnes mūsu serveros.

Tīmekļa lietotņu izvietošana, kas balstītas uz JavaScript UI ietvariem

Jāuzsver, ka neiesaku instalēt JS ietvarus vai veikt visu izstrādes darbu tieši serverī. Tas ir tāpēc, ka tīmekļa lietotnes konfigurācijas faili, skatu-komponentu-maršrutēšanas faili, kas vēl nav apvienoti, un īpaši node modules mape aizņem ievērojamu daļu no hostinga paketē piešķirtajiem resursiem.

Tāpēc turpināšu par izvietošanu serverī, nevis instalēšanu un izstrādi.

Varētu šķist sarežģīti, bet patiesībā tas ir pavisam vienkārši – viss, kas jādara, ir jāpārvieto visi faili no izveidotās tīmekļa lietotnes mapes uz jūsu vietnes domēna saknes mapi tīmekļa serverī.

Tīmekļa lietotnes mapes struktūra

Jau ilgāku laiku populārākie JavaScript ietvari ir React, Angular un Vue. Šajā rakstā kā piemēru izmantošu Vue. Tomēr, ja izmantojat React, Angular vai kādu citu JS ietvaru, nav nepieciešams šo lapu uzreiz aizvērt. Ja izslēdzam iespējamas atšķirības starp šiem ietvariem, izvietošanas loģika ir diezgan līdzīga.

Vispirms apskatīsim, kā varētu izskatīties Vue lietotnes mapes struktūra.
Manā piemērā esmu izveidojis Vue lietotni, izmantojot Vite, un pievienojis Vue Router un TypeScript atbalstu.

Projekta saknes mapē (vue-project manā piemērā) ir iepriekš minētā node_modules mape, kas tiek izveidota pēc npm install palaišanas pirmo reizi. Papildus tam ir public un src mapes, kā arī vairāki lietotnes konfigurācijas faili.

Lielākā daļa lietotnes izstrādes notiek src mapē – tur atrodas lietotnes skati, komponentes, maršruti u.c. Veidojot tīmekļa lietotni, šie faili tiek optimizēti un apvienoti. public mapes saturs netiek optimizēts vai apvienots, tas tiek nokopēts izveidotajā mapē tāds, kāds ir.

Kļūda saistībā ar Vue Router

Ja, veidojot jaunu Vue projektu, pievienojat Vue Router, tas pēc noklusējuma tiks konfigurēts izmantot HTML5 vēstures režīmu. Tas ir visdraudzīgākais SEO, izskatās labi un ir viegli saprotams, tāpēc arī ieteicamais Vue Router vēstures režīms.

Tomēr ar šo vēstures režīmu rodas problēma, ja lietotni izveidojat un izvietojat tādu, kāda tā ir. Proti, ja tieši mēģināt apmeklēt kādas savas lietotnes lapas URL (piemēram, https://randomexample.eu/somepage), jūs nonākat uz 404. kļūdas (Lapa nav atrasta). Tas pats notiks, ja pārvietosieties no galvenās lapas uz citu lapu un pārlādēsiet.

Par laimi šo problēmu ir viegli novērst. Mūsu (uz Apache balstītos) tīmekļa hostinga serveros jums savas vietnes saknes mapē jāiekļauj .htaccess fails. Šī faila saturs ir šāds:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>Code language: JavaScript (javascript)

Iesaku šo failu izveidot savas tīmekļa lietotnes ”public” mapē, lai tas vienmēr tiktu iekļauts izveidotajā lietotnes mapē.

Tīmekļa lietotnes izveide

Tagad, kad lietotne šķiet gatava izvietošanai, palaižam npm run build komandu un mūsu mapju struktūrā parādās jauna dist mape. (Citās ietvaros šai mapei var būt cits nosaukums)

Šajā mapē redzam lietotnes index failu, favicon, .htaccess failu, ko izveidojām Vue Router kļūdas dēļ, un assets mapi, kurā atrodas lietotnes loģikas un stila faili .js un .css formātos.

Lai publicētu / izvietotu tīmekļa lietotni, būs jāpārvieto viss ”dist” mapes saturs uz jūsu vietnes domēna saknes mapi tīmekļa serverī.

Failu pārvietošana uz serveri

Ir vairāki dažādi veidi, kā pārvietot failus uz serveri (FTP, SFTP, SSH) – vienkāršākais no tiem ir FTP (My Zone ir pieejama tīmekļa FTP lietotne). Ir arī noderīgas pamācības par pieslēgšanos serverim ar visiem šiem veidiem mūsu atbalsta zināšanu bāzē: https://support.www.zone.lv/

Neatkarīgi no tā, kuru veidu izvēlaties, jums būs jāaugšupielādē lietotnes faili savas vietnes domēna saknes mapē.
Ja lietotnei jāatveras no galvenā domēna (piem., https://randomexample.eu/) un neesat mainījuši saknes mapi My Zone iestatījumos, dist mapes saturs jāpārvieto uz htdocs mapi serverī.

Ja tīmekļa lietotnei jāatveras no apakšdomēna (piem., https://subdomain.randomexample.eu/), lietotnes faili jāpārvieto uz mapi, kas nosaukta pēc apakšdomēna.

Vai katru reizi, kad veicu izmaiņas lietotnē, man būs jādzēš un jāpārlādē faili no jauna?

Jā.

Taču šo procesu var padarīt ērtāku, ja izmantojat versiju kontroles programmatūru Git kopā ar Github vidi un tās Actions funkcionalitāti: https://www.zone.lv/blog/2023/12/21/automatic-publication-of-website-changes-through-github-actions/

Populāri ieraksti

.NO domain now at Zone – is your business ready for the Norwegian market?

.NO domēns tagad pieejams Zone – vai jūsu uzņēmums ir gatavs Norvēģijas tirgum?

Ants Korsar
Ja jūs plānojat paplašināt savu darbību Norvēģijā vai jau darbojaties tur, tagad ir īstais brīdis nodrošināt sev vietēju un uzticamu tīmekļa...
Zone Webmail 3.0: New features that make email management easier than ever

Zone Webmail 3.0: Jaunas funkcijas, kas padara e-pasta pārvaldību vieglāku nekā jebkad agrāk

Nikita Tikhomirov
Ir klāt uzlabotā Zone Webmail versija, kas piedāvā jaunu un lietotājam draudzīgu pieredzi. Mūsu mērķis ar šo jauno atjauninājumu bija vienkāršs:...
Still the rightful owner of your domain? ICANN’s new rule means it’s time to double-check

Vai joprojām esat sava domēna likumīgais īpašnieks? ICANN jaunais noteikums – laiks pārbaudīt vēlreiz

Jaanus Putting
Sākot ar 2025. gada 28. maiju, stājas spēkā jauna ICANN politika, kas ietekmē visus ģenerisko domēnu, piemēram, .COM, .ORG un .NET, īpašniekus....
Why choose a .EU domain today?

.EU domēns – kāpēc izvēlēties tieši šodien?

Jaanus Putting
Mēs dzīvojam laikā, kad globālās varas dinamika mainās ātrāk nekā jebkad agrāk. Kamēr Eiropa virzās uz spēcīgāku, vienotāku iekšējo tirgu,...