Próbuję utworzyć prosty serwer z węzłem, Express i ejs dla szablonu. Dostałem serwer, aby wskazać stronę, załadować ją, a nawet wygenerować inne fragmenty kodu za pomocą instrukcji include. Jednak z jakiegoś powodu arkusz stylów nie zostanie załadowany.Nie można pobrać arkusza stylów do pracy z programem ejs dla node.js
app.js
var express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app),
fs = require('fs');
var PORT = 8080;
app.set('view engine', 'ejs');
app.get('/', function(req, res){
res.render('board.ejs', {
title: "anything I want",
taco: "hello world",
something: "foo bar",
layout: false
});
});
app.listen(PORT);
console.log("Server working");
Plik EJS jest w ciągu poglądów katalogu/board.ejs
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='../styles/style.css' />
</head>
<body >
<h1> <%= taco %> </h1>
<p> <%= something %> </p>
</body>
</html>
i style.css znajduje się w style/style.css katalogu względem aplikacji. js
p {
color:red;
}
próbowałem każdą ścieżkę, że mogę pojąć za href linku w tym w stosunku do miejsca, gdzie moim localho st punktów w stosunku do app.js w stosunku do board.ejs, a nawet po prostu style.css, ale żaden nie działa. Wszelkie sugestie są bardzo mile widziane.
, które nie wydają się działać. Dlaczego "/ public"? "I jak ustawienie app.use zmieniło sposób oceny arkusza stylów? Próbowałem również ustawić 'href = '/ styles/style.css'' ze zmianą i bez powodzenia – Loourr
ustaw to powyżej twojej linii app.router(). – chovy
W zasadzie rozmawiasz z plikiem .ejs i mówisz, że kiedy odwołujesz się do pliku statycznego, jak w powyższym znaczniku 'link', katalogiem głównym jest folder' public' zdefiniowany w app.use, a nie katalog główny katalog całej aplikacji. W tym przypadku "/" w href tagu linku odwołuje się do katalogu 'public', a nie do katalogu głównego twojej aplikacji. – mumush