静态资源

未匹配的标注

AdonisJS 附带一个静态文件服务器来处理给定目录中的文件。就像在 ./public 目录中放置一个文件然后通过其文件名访问它一样简单。例如:

创建一个名为 public/style.css 的文件,其内容如下。

body {
  background: #f7f7f7;
}

然后通过访问localhost:3333/style.css 来访问它。你不需要目录名称 (/public) 就可以通过文件名直接访问这些文件。

配置

静态服务器的配置存储在 config/static.ts 文件中。

import { AssetsConfig } from '@ioc:Adonis/Core/Static'

const staticConfig: AssetsConfig = {
  enabled: true,
  dotFiles: 'ignore',
  etag: true,
  lastModified: true,
}

export default staticConfig

enabled

用于启用/禁用静态文件服务器的开关。


dotFiles

dot 文件处理方式,以下之一:

  • 'allow': 就像对其他文件一样处理。
  • 'deny': 以 403 状态码拒绝请求。
  • 'ignore': 假装 dot 文件不存在。

etag

是否为文件生成 ETag。


lastModified

启用或禁用 Last-Modified HTTP 响应头。响应头的值取决于文件的最后修改时间。

默认目录

一般来说,我们从 ./public 目录访问文件。但是,你可以通过在 .adonisrc.json 文件中配置来选择不同的目录。

// 文件名: .adonisrc.json
{
  "directories": {
    "public": "assets"
  }
}

进行上述更改后,静态服务器将访问 ./assets 目录中的文件。

通知编译器变化

@adonisjs/assembler 包编译你的生产应用程序并将输出写入 ./build 目录。

在此过程中,它还会从 public 目录复制文件,因此,你必须通知它 .adonisrc.json 文件中的更改。

// 文件名: .adonisrc.json
{
  "metaFiles": [
    {
      "pattern": "assets/**",
      "reloadServer": false
    }
  ]
}

URL 冲突

如果你的静态文件名与已注册的路由冲突,AdonisJS 将优先使用静态文件,并且永远不会调用路由处理程序。

在这种情况下,我们建议你重命名静态文件或将其移动到子文件夹中以避免冲突。

扩展阅读

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/adonisjs/5.x/ht...

译文地址:https://learnku.com/docs/adonisjs/5.x/ht...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~