ExpressJS - 服务静态文件



静态文件是客户端从服务器上下载的文件。创建新目录,即public。默认情况下,Express 不允许您下载静态文件。您需要使用以下内置中间件来启用它。

app.use(express.static('public'));

注意 − Express 相对静态目录查找文件,所以静态目录的名称并不是 URL 的一部分。

请注意,根路由现在设置在 public 目录,所以您加载的所有静态文件都将把 public 视为根目录。为了测试是否正常,请在新的public 目录中添加任何图片文件,并将其名称改为“testimage.jpg”。在视图中,创建新视图,并像下文所示包含该文件 −

html
   head
   body
      h3 Testing static file serving:
      img(src = "/testimage.jpg", alt = "Testing Image

您应该获得以下输出 −

Static Files Example

多个静态目录

我们还可以使用以下程序设置多个静态资源目录 −

var express = require('express');
var app = express();

app.use(express.static('public'));
app.use(express.static('images'));

app.listen(3000);

虚拟路径前缀

我们还可以在服务静态文件时提供一个路径前缀。比如,如果您想提供一个像'/static' 这样的路径前缀,您需要在index.js 文件中包含以下代码 −

var express = require('express');
var app = express();

app.use('/static', express.static('public'));

app.listen(3000);

现在,每当您需要包含一个文件时,比如位于 public 目录中的名为 main.js 的脚本文件,请使用以下脚本标签 −

<script src = "/static/main.js" />

当提供多个目录作为静态文件时,此技巧可能派上用场。这些前缀有助于区分不同的目录。

广告