如何使用 Laravel Vapor 发布清单文件

How to publish a manifest file with Laravel Vapor

我想在 Laravel Vapor 上发布文件 manifest.webmanifest。我尝试在根域 (docs) 上提供它:

# vapor.php
...
    'serve_assets' => ['manifest.webmanifest'],
...

Vapor 处理该路由,但抛出异常:

Client error: `GET https://xxxx.cloudfront.net/xxx/manifest.webmanifest` resulted in a `404 Not Found` response:

进一步检查后这是合乎逻辑的,因为文件永远不会发送到 S3 存储桶。 Laravel/VaporCli/AssetFiles 似乎过滤了 *.webmanifestmanifest.jsonmix-manifest.json.

等文件

不知道为什么会这样。有没有人有完成工作的诀窍?

一位致力于 Vapor replied 的开发人员表示现在不可能更改它,因为这将是一个重大更改。他建议添加一个 returns 清单内容的路由。

我已将这条路线添加到我的项目中:

Route::middleware('cache.headers:public;max_age=7200')->get(
    '/manifest.webmanifest',
    function (): string {
        return file_get_contents(public_path('manifest.webmanifest'));
    }
)