更改整个应用程序的默认 URL 或路径?
Change default URL or path for whole application?
在我的本地开发中,我遇到了我的应用程序使用域的相对路径的问题,例如/css/style.css
。
这通常很好用,因为我可以在我的开发机器上配置虚拟主机,例如localhost.foo
,这样相对路径解析为localhost.foo/css/style.css
。
在我目前的情况下,我无法编辑主机文件来设置开发域,因此域的相对路径不再起作用。我的开发 url 看起来像 localhost/projectfoo/public
。
为了使应用程序正常运行,它应该引用 localhost/projectfoo/public/css/style.css
。基于它现在引用 locahost/css/style.css
的代码中的相对路径,显然它会找不到请求的文件。
有没有办法配置 laravel,在一种情况下使用 localhost/projectfoo/public
作为 URL 而在另一种情况下使用标准?
您始终可以在配置文件中添加新条目,比如在 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">
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
中)称为 APP_URL
,例如
APP_URL=http://localhost
然后在config/app.php
中设置为:
'url' => env('APP_URL'),
这样你只需要为每个环境设置一次
在我的本地开发中,我遇到了我的应用程序使用域的相对路径的问题,例如/css/style.css
。
这通常很好用,因为我可以在我的开发机器上配置虚拟主机,例如localhost.foo
,这样相对路径解析为localhost.foo/css/style.css
。
在我目前的情况下,我无法编辑主机文件来设置开发域,因此域的相对路径不再起作用。我的开发 url 看起来像 localhost/projectfoo/public
。
为了使应用程序正常运行,它应该引用 localhost/projectfoo/public/css/style.css
。基于它现在引用 locahost/css/style.css
的代码中的相对路径,显然它会找不到请求的文件。
有没有办法配置 laravel,在一种情况下使用 localhost/projectfoo/public
作为 URL 而在另一种情况下使用标准?
您始终可以在配置文件中添加新条目,比如在 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">
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
中)称为 APP_URL
,例如
APP_URL=http://localhost
然后在config/app.php
中设置为:
'url' => env('APP_URL'),
这样你只需要为每个环境设置一次