在我的本地开发中,我面临的问题是我的应用程序使用相对路径到域,例如/css/style.css
。
这通常很好,因为我可以在我的开发机器上配置虚拟主机,例如localhost.foo
,以便将相对路径解析为localhost.foo/css/style.css
。
在我目前的情况下,我无法编辑hosts文件来设置开发域,因此域的相对路径不再起作用。我的开发网址看起来像localhost/projectfoo/public
。
为了使应用程序有效,它应该引用localhost/projectfoo/public/css/style.css
。根据代码中的相对路径,它现在引用locahost/css/style.css
,显然 - 它将找不到所请求的文件。
有没有办法配置laravel,在一个案例中使用localhost/projectfoo/public
作为URL而在另一个案例中使用标准?
答案 0 :(得分:2)
您始终可以在配置文件中添加新条目,例如config/app.php
// this is the one that comes with laravel
'url' => 'http://localhost',
// this is the one that you can define
'url_public' => 'http://localhost/something_else/public'
然后在您的视图中使用它,如:
<link href="{{ config('app.url_public') }}/style/style.css" rel="stylesheet">
答案 1 :(得分:0)
Laravel有一个辅助函数asset
,它根据您的配置app.url
值生成相对路径的完整URL。
例如,如果app.url
为http://localhost
:
在您的视图中,{{ asset("css/style.css") }}
和Laravel会将此转换为http://localhost/css/style.css
因此,在您的情况下,您需要做的就是将app.url
更改为http://localhost/public
,然后在视图中使用asset
方法而不是相对路径。
更好的是,在.env
文件中添加一个新的环境变量(确保将其放在.env.example
中),例如。{/ p>
APP_URL
然后在APP_URL=http://localhost
中将其设置为:
config/app.php
这样你只需要为每个环境设置一次