我在express中定义了静态文件的以下中间件:
app.use(express.static(__dirname + '/public'));
app.use('/lessons', express.static(__dirname + '/lessons', { redirect : false }));
在课程文件夹中我有几个课程文件夹
lessons
|-- lesson01
|-- lesson02
.
.
.
在每个课程文件夹中都有一个我呈现的lesson.md
文件。此文件引用了同一课程文件夹中的图像。我希望能够在markdown文件中使用例如img01.png
来引用图像,但是表达式希望图像可以在/lessons/img01.png
而不是/lessons/lesson01/img01.png
中找到。
使用./img01.png
作为对降价文件中图像的引用也没有帮助。
关于你如何告诉express在静态文件的同一目录中查找的任何想法?
由于
编辑:
更多信息,
获取课程文件的路线是:
app.get('/lessons/:name', function(req, res, next) {
res.locals.controller = 'lessons';
var name = req.params.name;
var lesson = lessons[name];
if (!lesson) {
return next();
}
lesson.path = 'lessons/' + name;
lesson.file = lesson.path + '/' + name + '.md';
markdown(lesson.file, function(result, err) {
if (err) {
console.log(err);
}
lesson.body = result;
res.locals.lesson = lesson;
res.render('lesson');
});
});
另外,我使用名为connect-slashes的中间件来删除每个URL末尾的斜杠。 (由于this SO question)
var slashes = require('connect-slashes');
var app = express();
app.use(express.static(__dirname + '/public'));
app.use('/lessons', express.static(__dirname + '/lessons', { redirect : false }));
// add middleware to remove trailing slash in urls
app.use(slashes(false));