我试图让我的快递服务于另一个位置的静态文件:
这是我目前的目录:
|__client
| |__thumbnails.html
|
|__server
|__app.js
我尝试使用app.use(express.static(path.join(__dirname, '..', 'client')));
,但它根本不会提供该文件。但是,当我在path.join
上使用相同的'/'
获取请求时,它会发送文件。
这是我目前的代码。它工作了,感谢上帝,但我想知道是否有办法让我在没有实际发送文件的情况下提供服务。
const express = require('express');
const path = require('path');
const similar = require('./routes/similar');
const image = require('./routes/images');
const app = express();
app.use(express.static(path.join(__dirname, '..', 'client')));
app.use('/item', similar);
app.use('/thumbnail', image);
app.get('/', (req, res) => res.status(200).sendFile(path.join(__dirname, '..', 'client', 'thumbnail.html')));
module.exports = app;
答案 0 :(得分:2)
您可以通过配置serve-static模块使文件成为您想要的任何内容: https://expressjs.com/en/resources/middleware/serve-static.html
从该页面开始:
var express = require('express')
var serveStatic = require('serve-static')
var app = express()
app.use(serveStatic('public/ftp', {'index': ['default.html', 'default.htm']}))
app.listen(3000)
现在,您按照定义的顺序查看放入'index'数组中的所有内容。 否则,如果您将实际文件名放在网址中,您仍然可以访问您的html文件。
答案 1 :(得分:0)
好吧,我想我弄明白了。显然你必须将html保存为索引。 Express正在寻找,但由于我没有index.html,它会跳过我的thumbnails.html。
因此将我的html重命名为index.html修复了问题。
更新:
因此,通过阅读文档,您可以通过传递选项来设置默认值。我传入了{ index: 'thumbnails.html' }
作为静态的第二个参数,它提供了我的HTML。