【问题标题】:Express Serving a Static File: Server and Client in Different Locations快速提供静态文件:不同位置的服务器和客户端
【发布时间】:2018-02-27 18:06:49
【问题描述】:

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

这是我的当前目录:

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

【问题讨论】:

    标签: javascript html express serving


    【解决方案1】:

    您可以通过配置 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 文件。

    【讨论】:

    • 非常感谢!我刚读到那个,并且正在搞乱它。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-08-16
      • 2016-10-25
      • 2018-05-14
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 2021-12-10
      • 2017-10-10
      • 1970-01-01
      相关资源
      最近更新 更多