我正在尝试使用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;
我将按照文档进行操作,因此我不知道为什么这不起作用。
答案 0 :(得分:3)
由于您的app.js
和public
文件夹位于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">