6

我尝试使用 Laravel 的 php artisan 使用 CLI 命令发送一些电子邮件,这很简单,例如:

 php artisan invitation:send recipient@mail.com

此命令正在调用包含以下内容的 UserController 方法:

Mail::send('emails.beta.invitation', $data, function($message) use ($address)
{
    $message->to($address)
            ->subject('My subject');

});

问题是,当它使用视图创建 HTML 时,URL::asset('img/foo.png')模板中的所有引用都给了我一个漂亮的:

http://localhost/img/foo.png 

而不是网站网址:

http://mydomain.com/img/foo.png

如果我通过在 Web 浏览器中调用此方法来调用它,则该资产的 URI 很好。我什至尝试使用 CLI 的环境,但它不起作用。(即。--env=production

我哪里错了?

4

2 回答 2

10

好吧,我明白了。

使用 CLI 时,Laravel 使用配置文件app/config/app.php来读取“url”(默认'url' => 'http://localhost')。

所以我只需要在app/config/local/app.phpwith 下创建一个新的配置文件:

<?php
return array(
    'url' => 'http://localhost:8000',
);

app/config/app.php用我的生产价值改变:

'url' => 'http://mydomain.com'

现在效果很好!

于 2013-09-22T18:55:33.300 回答
0

https://github.com/laravel/framework/issues/2554#issuecomment-246645265

mstephens 于 2016 年 9 月 13 日发表评论

在 App\Providers\RouteServiceProvider 中,您可以定义以下内容:

/**
 * @inheritdoc
 */
public function boot()
{
    parent::boot();

    /** @var \Illuminate\Routing\UrlGenerator $url */
    $url = $this->app['url'];
    // Force the application URL
    $url->forceRootUrl(config('app.url'));
}
于 2017-12-16T04:10:33.043 回答