1

我们最近将我们的邮件实现切换为基于控制台的。

不幸的是,电子邮件视图中的以下帮助程序代码现在已损坏:

$this->Html->image('file.png', array('fullBase' => true)

尽管我们将 CakeEmail 的 domain var 设置为正确的值:

$email->domain('www.domain.tld');

助手产生以下

http://home/www/domain.tld/htdocs/img/file.png?1382530379

当前行为: 文件的资产时间戳就像一个魅力,但不幸的是,我认为由于控制台调用,文件的 UNIX 路径是 fullBase。

预期行为: fullBaseUrl 应该是我们在 CakeEmail 对象中设置的域。

伙计们:除了将域放在我自己的 $this->Html->image() 调用中之外,还有其他可能性吗?

4

1 回答 1

1

CakeEmail::domain 没有做你想做的事

域功能不用于配置资产中的基本 url,其目的是用作消息 id 的主机名。快速查看代码,并检查$this->_domain使用位置应该确认它仅与消息头有关。

fullBaseUrl

设置选项是App.fullBaseUrl通过调用 Router::fullBaseUrl

// inside email-sending command, before sending an email
Router::fullBaseUrl('http://example.com');

或者直接在 core.php 中配置:

// anywhere before an email is sent
Configure::write('App.fullBaseUrl', 'http://example.com');
于 2013-10-28T09:10:00.053 回答