Vapor:从根域名提供资源

2020 年 9 月 23 日#vapor

您可能知道,在部署过程中,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-clivapor-core 包中可用。尽情享受吧!

作者:Nuno Maduro

Laravel 团队,Pest 的创建者。

关注 RSS Feed