Magento 2:无法从管理员上传交易电子邮件徽标


27

我正在尝试更改交易电子邮件徽标。

管理员>内容>设计>配置>编辑任何记录->交易电子邮件

它在Magento 2.1上,但是徽标保存后显示损坏的图像。请参考所附的屏幕截图。

在此处输入图片说明


1
未找到图片,因此显示了它们。右键单击并检查元素显示图像页并进行检查。可能是您找到解决方案了
Hitesh Vaghasiya

1
当inspect元素显示/pub/media/email/logo/stores/1/email_logo.png但当前电子邮件徽标保存在目录/pub/media/logo/websites/1/email_logo.png
Lalit Kaushik

1
我觉得这是错误在Magento 2.1
拉利特·考希克

1
我仍然在Magento 2.1.3中面临这个问题。除了更改核心文件,还有其他解决方案吗?
BornCoder

运行最新版本的2.2.6仍然是一个问题。我尝试手动创建目录和文件,但完全没有成功。荒谬的是,magento的开发人员还没有解决一些最基本的CMS 101功能。
Marco Yammine

Answers:


9

我也遇到了这个问题,并提出了一个临时解决方案:

我检查Magento/Config/Model/Config/Backend/Email/Logo并找到此常量:

const UPLOAD_DIR = 'email/logo';

并将其更改为:

const UPLOAD_DIR = 'logo';

同样在Magento/Email/etc/di.xml,我替换email/logologo

<item name="value" xsi:type="string">email/logo</item>

至:

<item name="value" xsi:type="string">logo</item>

它正在工作,但不会在电子邮件中反映出来
Rajan Soni,

它正在工作,但不会反映在电子邮件上。有任何想法吗?
Magento2 Devloper

9

不修改代码的最简单解决方法是

1)创建目录pub/media/email/logo/default pub/media/email/logo/stores/1/(在2.1.2上运行)

2)手动将徽标复制到目录中。

3)然后通过正确的程序“ 内容”>“设计”>“配置”>“编辑”>“跨国电子邮件”>“

现在,将您手动添加的同一徽标上传到新创建的目录中。


这在2.1.7版本中仍然是一个问题!
styzzz

此解决方案出奇地有效(记住要设置权限)
nicolallias

它对我
不起作用

@ErSarveshVTiwari我有2.1.2版本的目录路径-是否可以使用您的版本?您能指定回应的版本吗?
Nolwennig

@styzzz我有2.1.2版本的目录路径-适用于您的2.1.7版本吗?
Nolwennig

3

这是2.1.2及更低版本中的错误。上载图像后,图像会转到错误的目录pub / media / email / logo / websites / 1 /

它应该是pub / media / logo / websites / 1 /

参考文件:app / code / Magento / Email / Model / AbstractTemplate.php

最新的2.1.2中尚未包含它。您可以将图像上传到正确的目录中,同时等待下一个版本中实施此修复程序。


1

该错误仍然存​​在!请按照以下步骤进行更正:

  • 在您的自定义模块中创建di.xml
  • <preference for="Magento\Theme\Model\Design\Backend\Logo" type="Vendor\YouModuleName\Model\Design\Backend\Logo"/>
  • 创建文件Vendor \ YouModuleName \ Model \ Design \ Backend \ Logo.php
  • 替换const UPLOAD_DIR ='logo'; 常量UPLOAD_DIR =“电子邮件/标志”;
  • 测试一下!;)

1

这个解决方法对我有用:

在自定义主题中,将名为logo_email.png的文件添加到Magento_Email / web目录中:

app/design/frontend/Vendor/yourtheme/Magento_Email/web directory

复制

<Magento_Email_module_dir>/view/frontend/email/header.html

文件放入您主题中的Magento_Email / email目录。

编辑标签的width和height属性,以反映要在其中显示徽标的区域(例如200×100)。

例:

{{if logo_width}}
    width="{{var logo_width}}"
{{else}}
    width="200"
{{/if}}

{{if logo_height}}
    height="{{var logo_height}}"
{{else}}
    height="100"
{{/if}}

如果您想使用Admin覆盖这些值,则应保留if / else条件语句。


1

打开新的电子邮件模板,加载任何模板,然后单击“预览”。预览后,单击徽标。它将显示Magento选择的路径。转到路径,删除以前的徽标并上传。您的问题将得到解决。


1

这个在2.1中固定吗?我已经用composer更新了2.1安装,但是似乎没有固定。我们如何更新?
2016年

我不知道现在是否已解决。我手动进行更改。
Victor Piolin

1
从2.1.2版本开始尚未修复。
jehzlau

1
在2.1.3中还没有修复。
BornCoder

1
未在2.1.4中修复,完全是笑话。
LM_Fielding

1

如果问题在2.3.0中发生

对于电子邮件徽标: 将fileUploader替换为imageUploader

供应商/ magento /模块电子邮件/视图/adminhtml/ui_component/design_config_form.xml

<field name="email_logo" formElement="imageUploader">

对于网站徽标: 将fileUploader替换为imageUploader

供应商/ magento /模块主题/视图/adminhtml/ui_component/design_config_form.xml

 <field name="head_shortcut_icon" formElement="imageUploader">

<field name="header_logo_src" formElement="imageUploader">


0

以下是一个简单的解决方法。无需更改文件结构等。

首先,创建一个带有徽标图像的静态块。如果需要,请添加必要的文本。
将静态块命名为email-logo。
将代码块插入电子邮件模板的html中,如下所示:

{{block class="Magento\Cms\Block\Block" area='frontend' block_id="email-logo"}}

现在,您可以从电子邮件中删除默认的电子邮件标题:

{{template config_path="design/email/header_template"}}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.