Máme hotových několik stránek jako HTML soubory a k nim máme několik obrázků. Chceme odevzdat projekt, aby běžel jako aplikace na serveru.
Hlavní aplikace bude v souboru app.js.
Všechny html soubory dáme do složky views
.
Všechny obrázky dáme do složky static
.
Při spouštění aplikace se vám nejspíš vytvoří složka node_modules
a soubor packages_lock.json
.
Ty neodevzdávejte, zbytečně by zabíraly místo.
Soubory ve složce views
jsou šablony a je potřeba serveru vyjmenovat každou jednotlivě a určit, na jaké adrese se má uživatelům nabízet.
Například pokud chceme, aby se soubor stranka.html
nabízel na adrese localhost:5000/adresa
, přidáme do programu app.js
následující kód:
app.get(<b>"/adresa"</b>, function (req, res) {
res.render(<b>"stranka"</b>, {layout: false});
});
Všimněte si, že název souboru píšeme bez koncovky – to je samozřejmost.
Soubory všech ostatních typů nabízíme uživatelům ke stažení, aniž by s nimi server něco dělal.
Tyhle soubory patří do složky static
.
Nešťastný důsledek je, že se na soubory musíme i odkazovat s touhle složkou. To znamená, že následující obrázek:
<img src="muj_obrazek.png">
...se musí změnit na:
<img src="static/muj_obrazek.png">
Tahle změna se týká všech souborů, které jste umístili do složky static. Pokud se na svém webu odkazujete na obrázky z Internetu, nemusíte jejich adresy nijak měnit.
Aby aplikace šla zveřejnit na kvintagjs.herokuapp.com, musí být schopná běžet na libovolném portu.
To se zařídí, když app.listen
spustíme nějakým takovýmhle způsobem:
var port = process.env.PORT || 5000
app.listen(port);
console.log(`Aplikace běží na http://localhost:${port}`);
V kódu ukázky z minula je to už napsané správně.