在 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 主机。
根据 laravel 8.x 文档,您可以通过在 .env 文件中设置 ASSET_URL 变量来配置资产 URL 主机。
在您的 .env 文件中:
ASSET_URL=/public/assets
如果没有发生变化,记得运行
php artisan config:clear
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 主机。
根据 laravel 8.x 文档,您可以通过在 .env 文件中设置 ASSET_URL 变量来配置资产 URL 主机。
在您的 .env 文件中:
ASSET_URL=/public/assets
如果没有发生变化,记得运行 php artisan config:clear