use*_*278 5 php laravel laravel-5
我想在共享托管中安装laravel,我按照这里的步骤/sf/answers/1991466641/,但我的资产路径未包含公共目录
代替这个
<link href='http://example.com/public/assets/css/style.css' type='text/css' media='all' />
Run Code Online (Sandbox Code Playgroud)
我得到这个
<link href='http://example.com/assets/css/style.css' type='text/css' media='all' />
Run Code Online (Sandbox Code Playgroud)
如何在不更改任何核心类的情况下更改资产文件夹的目录(将公共资源添加到资产)?
Udo*_* E. 15
对于最新版本的 Laravel - Laravel 5.8,在config/app.php 中有一个名为asset_url 的键。这个键的值决定了asset()方法返回的值。通常,如果您的所有资产文件夹都在默认位置(此默认位置是Laravel 安装根目录下的公共文件夹),您应该将此键的值设置为您网站的基本 url 。
例如,如果您的网站 url 是“ https://www.example.com ”,并且您想访问根文件夹下的资产路径public/assets/css/sample.css,请在 config/app.php 中设置 asset_url,如这个:
'asset_url' => env('ASSET_URL', 'https://www.example.com'),Run Code Online (Sandbox Code Playgroud)
并像这样使用资产功能:
asset('assets/css/sample.css')Run Code Online (Sandbox Code Playgroud)
此后,通过在 Laravel 安装文件夹中运行它来重新配置缓存:
php artisan config:cacheRun Code Online (Sandbox Code Playgroud)
这将更新bootstrap/cache/config.php文件。如果您检查浏览器,则为您的资产生成的 url 将是“ https://www.example.com/assets/css/sample.css ”。
你可以有这样一个有效的URL的一种方式:“ https://www.example.com/public/assets/css/sample.css ”是创建一个名为其他文件夹公共您已经现有的公共文件夹内-这是不直观为了我。但是,如果这样做,则在使用资产功能时必须包含此路径:
asset('public/assets/css/sample.css')Run Code Online (Sandbox Code Playgroud)
Laravel 5.7.14 之前
看看Illuminate\Routing\UrlGenerator类及其asset($path, $secure = null)方法。此类正在通过url密钥放入容器。你可以做的是:
UrlGenerator;asset($path, $secure = null)方法添加到您自己的类中,使其返回您需要的任何内容;config/app.php;register()方法中,通过url键将您的新类绑定到容器。这样,您根本不会接触核心文件,并且您的 Laravel 应用程序仍然易于更新。
Laravel 5.7.14 及更高版本的更新
正如其他答案所述,有ASSET_URL.env 选项,这使得更改公共路径变得更加容易。Laravel 在 Laravel 5.7.14 中引入了它,该版本在我最初的回答大约 3 年后发布。
小智 5
在您的.env文件中添加ASSET_URL = public,然后运行php artisan config:cache
| 归档时间: |
|
| 查看次数: |
9477 次 |
| 最近记录: |