首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MJML: mj-包含读取文件失败

MJML: mj-包含读取文件失败
EN

Stack Overflow用户
提问于 2018-08-08 07:32:11
回答 2查看 2.1K关注 0票数 0

首先,我是电子邮件标记方面的新手。所以我决定使用mjml来构造一个字母,但我面临的问题是标记没有正确地呈现: MJML不包括组件,我也不明白为什么。项目是使用npm包mjml-component-样板创建的,因为我想注册自己的组件。

我的index.mjml

代码语言:javascript
复制
<mj-body>
    <mj-include path="./components/blocks/header.mjml" />
    <mj-include path="./components/blocks/main.mjml" />
    <mj-include path="./components/blocks/footer.mjml" />
  </mj-body>

部分输出index.html (与main.mjml和footer.mjml相同)

代码语言:javascript
复制
<div>
        <!-- mj-include fails to read file : ./components/blocks/header.mjml at D:\projects\ctc_projects\chetv\site\reshala_promo\email\components\blocks\header.mjml -->

header.mjml

代码语言:javascript
复制
<mj-section>
    <mj-column>
        <mj-div css-class="header">
            <mj-image
                    src="/assets/images/logo.png"
                    alt="ЧЕ!"
                    title="https://chetv.ru/"
                    href="https://chetv.ru/"
                    target="__blank"
                    css-class="header__logo"
            />
        </mj-div>
    </mj-column>
</mj-section>

对于一种情况,如果它对我的MjDiv组件有任何意义的话

代码语言:javascript
复制
import { registerDependencies } from 'mjml-validator'
import { BodyComponent } from 'mjml-core'

registerDependencies({
    'mj-body': ['mj-div'],
    'mj-column': ['mj-div'],
    'mj-section': ['mj-div'],

    'mj-div': [
        'mj-text', 'mj-image', 'mj-accordion',
        'mj-carousel', 'mj-divider', 'mj-group',
        'mj-navbar', 'mj-raw', 'mj-social',
        'mj-div', 'mj-a', 'mj-p', 'mj-h1'
    ]
});

export default class MjDivComponent extends BodyComponent {
  static endingTag = true;

  static allowedAttributes = {
      'css-class': 'css-class',
      'style': 'style'
  };

  render() {
    return `<div
        ${this.htmlAttributes({
          class: this.getAttribute('css-class'),
          style: this.getAttribute('style')
        })}
      >${this.getContent()}</div>`;
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 17:28:05

演示将<mj-include>组件放在<mj-body>之后(如https://mjml.io/documentation/#mj-include中所示)。在那里对我不管用。

当我将<mj-include>元素放在<mj-head>之后时,它确实对我有用。祝好运!

我把你的其他帖子解释为背景,而不是问其他问题。如果不是这样,请告诉我。

顺便提一下:除了堆栈溢出之外,MJML信息的另一个重要来源是https://mjml.slack.com

票数 0
EN

Stack Overflow用户

发布于 2019-12-19 06:05:46

代码语言:javascript
复制
    <mj-section padding="0px">
        <mj-column>
            <mj-text align="center" padding="0px">
              <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
            </mj-text>
        </mj-column>
    </mj-section>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51740951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档