在 Laravel 中更改资产助手 url

Change the asset helper url in Laravel

asset()URL::asset()默认指向http://my-url/public/

有没有办法把asset()的url改成http://my-url/public/assets/

我有很多资产文件我应该在我的 blade 模板中使用,我不想写 assets 任何时候。

我的意思是在我的 blade 模板中使用 asset('js/script.js') 而不是 asset('assets/js/scripts.js')

覆盖默认值 asset() 是个坏主意,但您可以通过 :

来实现
function asset($path, $secure = null)
{
    return app('url')->asset($path.'/asset', $secure);
}

但是像 customAsset() 这样定义自己的助手是更好的方法。

默认情况下,没有任何配置。您可以像这样创建自定义函数:

function my_asset($path, $secure = null){
    return asset('/assets/' . trim($path, '/'), $secure);
}

我也遇到过使用 S3 作为文件提供程序的情况。搜索Laravel文档后,找到如下解决方法。您可以通过在 .env 文件中设置 ASSET_URL 变量来配置资产 URL 主机。

https://laravel.com/docs/7.x/helpers#method-asset

根据 laravel 8.x 文档,您可以通过在 .env 文件中设置 ASSET_URL 变量来配置资产 URL 主机。

在您的 .env 文件中:

ASSET_URL=/public/assets

如果没有发生变化,记得运行 php artisan config:clear