我正在嘗試使節點,表達式和ejs作爲模板的簡單服務器。我已經讓服務器指向頁面,加載它,甚至可以用include語句生成其他代碼段。但由於某種原因樣式表不會加載。無法獲取樣式表與ejs一起工作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");
的EJS文件是目錄中的意見/ board.ejs
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='../styles/style.css' />
</head>
<body >
<h1> <%= taco %> </h1>
<p> <%= something %> </p>
</body>
</html>
和style.css的是款式/ style.css中相對於應用程序的目錄。 JS
p {
color:red;
}
我想盡我可以爲鏈接的href,包括相對於在我的localho設想的路徑st相對於app.js相對於board.ejs,甚至只是style.css,但似乎沒有任何工作。任何建議,非常感謝。
似乎並沒有工作。爲什麼''/ public'?'以及如何設置app.use改變樣式表的評估方式?我也嘗試將設置爲'href ='/ styles/style.css'',並且沒有任何運氣 – Loourr
將它放在app.router()行的上方。 – chovy
你基本上在和你的.ejs文件交談,並說當你引用一個靜態文件時,就像上面的'link'標記一樣,根目錄是你在app.use中定義的'public'文件夾,而不是根你的整個應用程序的目錄。在這種情況下,鏈接標記的href中的「/」引用「public」目錄,而不是應用程序的根目錄。 – mumush