Jak odevzdat projekt

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.

Struktura složek

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.

Šablony v HTML

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.

Obrázky a styly

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:

&lt;img src="muj_obrazek.png"&gt;

...se musí změnit na:

&lt;img src="static/muj_obrazek.png"&gt;

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.

Port

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ě.