如何访问node.js express中我公共文件夹中的文件

时间:2016-12-22 20:43:12

标签: javascript node.js express

我正在尝试使用express访问位于 public 文件夹中的文件。 我的文件结构如下所示

/app
 -app.js
 /routes
  -index.js
 /public
  /images
   /misc
   -background.jpg
  /css
    -style.css

我的 app.js 正在端口 3000 上运行,

app.use(express.static('app/public'));
app.use(require('./routes/index'));

index.js 找不到 background.jpg style.css

router.get('/',function(req,res){
res.send(`
<link rel="stylesheet" type="text/css"
  href="css/style.css">
<h1>Welome</h1>
<img
src="/images/misc/background.jpg"
style="height:300px;"/>
<p>some text</p>`);
});

module.exports = router;

我将按照文档进行操作,因此我不知道为什么这不起作用。

2 个答案:

答案 0 :(得分:3)

由于您的app.jspublic文件夹位于app文件夹中,因此您无需在app中添加express.static('app/public')文件夹,也可以使用{{1}如下所示,

path.resolve

另外,将下面的var path = require('path'); app.use(express.static(path.resolve('./public'))); 值更改为href

href="/css/style.css"

答案 1 :(得分:3)

需要app.js中的路径模块:

var path=require('path');

修改静态内容的中间件:

app.use(express.static(path.join(__dirname,'public')));

链接到您的css:

<link rel="stylesheet" type="text/css" href="/css/style.css">