【问题标题】:Purpose of a virtual path prefix in ExpressExpress 中虚拟路径前缀的用途
【发布时间】:2019-08-06 03:58:09
【问题描述】:

在服务器端提供静态服务的方式在 Express 中似乎非常简单:

要提供静态文件,例如图像、CSS 文件和 JavaScript 文件, 使用 Express 中的 express.static 内置中间件函数。

将包含静态资产的目录的名称传递给 express.static 中间件函数开始提供文件 直接地。例如,使用以下代码提供图片、CSS 文件,以及名为 public 的目录中的 JavaScript 文件:

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

现在,您可以加载公共目录中的文件了:

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

Express 查找相对于静态目录的文件,因此 静态目录的名称不是 URL 的一部分。

要使用多个静态资产目录,请调用 express.static 中间件函数多次:

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

Express 按照您使用 express.static 中间件函数设置静态目录的顺序查找文件。

我知道虚拟路径前缀的概念,但你为什么要使用它?

创建一个虚拟路径前缀(路径实际上并不 存在于文件系统中)对于由 express.static 函数,指定静态的挂载路径 目录,如下图:

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

现在,您可以从 /static 路径前缀加载公共目录中的文件。

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

【问题讨论】:

  • 如何在 PHP 中做到这一点?

标签: express


【解决方案1】:

我知道这有点晚了,但希望这可以帮助你。顺便说一句,我不相信答案,只是深入了解您的问题并发现了这一点。

当提供多个目录来提供静态文件时,这种技术会派上用场。前缀用于帮助区分多个目录。

如果您想深入挖掘。我在这个链接上找到了它: https://guide.freecodecamp.org/nodejs/express/

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多