静态资源
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 将优先使用静态文件,并且永远不会调用路由处理程序。
在这种情况下,我们建议你重命名静态文件或将其移动到子文件夹中以避免冲突。
扩展阅读#
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。