0

我试图让我的快递服务于另一个位置的静态文件:

这是我拥有的当前目录:

|__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;
4

2 回答 2

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)

现在将按照您定义的顺序查看您放入“索引”数组中的任何内容。否则,如果您将实际文件名放在 url 中,您仍然可以访问您的 html 文件。

于 2018-02-27T18:23:07.277 回答
0

好吧,我想我明白了。因此,显然您必须将 html 保存为 index.html。Express 正在寻找它,但由于我没有 index.html,它会跳过我的 thumbnails.html。

所以将我的 html 重命名为 index.html 解决了这个问题。

更新:所以通读文档,您可以通过传入一个选项来设置默认值。{ index: 'thumbnails.html' }我作为静态的第二个参数传入,它为我的 html 服务。

于 2018-02-27T18:15:53.833 回答