Express + nodeJS永远不会得到我的静态文件

时间:2015-01-18 04:36:27

标签: css node.js express

我无法理解为什么express无法获取我的静态文件以显示我的CSS。

express.js:

 app.use(express.static(__dirname + '/public'));

的style.css

<style type="text/css">
body {
background-image: url("background.jpg");
} </style>

test.ejs:

<!DOCTYPE html>
<html> <body>
<h1> TEST </h1> </body> </html>

文件夹路径:

/express.js
/public/style.css
/public/background.jpg
/views/test.ejs

test.ejs route:

.get('/myTest', function(req, res){
res.render('test.ejs', { data: req.session.info });
})

(info是当前会话的数据数组)

3 个答案:

答案 0 :(得分:0)

test.ejs应该是

<html> 
<link rel="stylesheet" type="text/css" href="style.css">
<body>
<h1> TEST </h1 </body> </html>

希望这能解决您的问题

答案 1 :(得分:0)

问题在于您从/以外的绝对路径使用CSS中的相对路径。因此,当您请求/myTest时,浏览器正在寻找/myTest/background.jpg当然是404,因为根据您的文件系统布局,它确实应该是/background.jpg

解决此问题的一种简单方法是使您的CSS网址绝对:

body {
  background-image: url("/background.jpg");
}

答案 2 :(得分:0)

我累了......不幸的是这是我的第一行...... 删除<style> </style balise