更改整个应用程序的默认网址或路径?

时间:2015-10-14 15:59:16

标签: php configuration laravel-5 uri relative-path

在我的本地开发中,我面临的问题是我的应用程序使用相对路径到域,例如/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而在另一个案例中使用标准?

2 个答案:

答案 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.urlhttp://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

这样你只需要为每个环境设置一次