Config/app.php
中的,url
的实际用途是什么?
它说artisan command line tool
要使用的应用程序URL,那么实际应该是什么?
我的意思是它应该是http://mydomainname.com
还是/var/www/laravel/
或/var/www/laravel/public
当前配置
/*
|--------------------------------------------------------------------------
| Application URL
|--------------------------------------------------------------------------
|
| This URL is used by the console to properly generate URLs when using
| the Artisan command line tool. You should set this to the root of
| your application so that it is used when running Artisan tasks.
|
*/
'url' => 'http://localhost/',
如果我的应用程序源位于/var/www/
目录,则laravel公用文件夹为/var/www/laravel/public
并且http://mydomainname.com
指向在/var/www/laravel/public
目录
用例:
我将使用来自laravel schedular
的{{1}} /app/Console/Kernel.php
将调度periodic sendMail commands
,然后将在数据库和queue listner
中对要发送的邮件进行排队比正常处理队列
队列在localhost(我的本地xamp服务器)上正常工作但是我担心生产中的url
值应该是什么
答案 0 :(得分:36)
当用户访问您的网站时,Laravel会从PHP的超级全局($ _SERVER,$ _GET,$ _POST等)获取有关请求的大量信息。部分信息是请求URL。
例如,如果您访问请求方法url()
或path()
,则通过$ _SERVER超全局检索此信息:
$url = Request::url();
$path = Request::path();
但是,工匠,命令,工作等不具备此信息的好处。它不是来自用户的普通HTTP请求,而是从命令行运行的PHP命令。因此,Laravel需要一种方法来确定应用程序的URL应该是什么。这是配置值的来源。
在您的示例中,您计划从队列中发送电子邮件。想象一下,您需要在其中一封电子邮件中包含指向您网站路线的链接,因此您可以使用UrlGenerator获取链接的网址(URL::route('route.name')
)。由于此代码在命令中运行,并且与任何类型的HTTP请求无关,因此将从您在config/app.php
中设置的配置值中选择基本应用程序URL。
现在应该更清楚一点,url
值应该设置为应用程序的http url,而不是任何类型的目录路径。在您的示例中,它应为http://mydomainname.com
。
答案 1 :(得分:6)
在制作时,应将其设置为
'url' => 'http://your-live-domain.com',
正如你所提到的,它将被工匠的命令和队列使用。
您可以利用.env
存储您的实时域名。 http://laravel.com/docs/5.1#environment-configuration