您可能知道,在部署过程中,Vapor 会自动提取 Laravel 项目 public 目录中的所有资源,并将它们上传到 S3。此外,Vapor 会创建一个 AWS CloudFront(CDN)分发,以高效地将这些资源分发到世界各地。
虽然这很方便,但某些应用程序(如 PWA)可能需要从根域名提供某些资源。例如,JavaScript 服务工作者必须从与引用者相同的来源提供。
从今天开始,您可以从根域名提供特定资源。要开始使用,只需转到应用程序的 config/vapor.php
文件,并添加一个应该在根域名中提供的资源数组。
/*
|--------------------------------------------------------------------------
| Servable Assets
|--------------------------------------------------------------------------
|
| Here you can configure list of public assets that should be servable
| from your application's domain instead of only being servable via
| the public S3 "asset" bucket or the AWS CloudFront CDN network.
|
*/
'serve_assets' => [
'serviceWorker.js',
],
在撰写本文时,由于 Vapor 提供的应用程序的无服务器性质,从根域名提供的资源在客户端不可缓存,并且它们使用 Laravel 路由提供。因此,您应该只提供绝对必须从根域名提供的资源,因为这样做会略微降低性能。
除了这项新功能之外,您现在还可以指示 Vapor 将 public 目录的点文件解释为资源。为此,您只需在 vapor.yml
文件中将 dot-files-as-assets
键设置为 true
。
id: 1
name: app-test
dot-files-as-assets: true
当然,您也可以选择从根域名提供这些点文件。
'serve_assets' => [
'serviceWorker.js',
'.well-known/assetlinks.json',
],
最后,请记住,这些功能仅在最新版本的 vapor-cli
和 vapor-core
包中可用。尽情享受吧!