当前位置: 首页 > 知识库问答 >
问题:

如何处理模板与webpack和html webpack文本插件?

施英哲
2023-03-14

我有一个项目,使用Twig模板。它中的所有数据都是静态的,但为了清晰起见,我在其他twig文件中分离了页面的部分(否则一个文件中会有数百行标记)。

<h1>This is my main index page</h1>    
{% includes './welcome/hello.html' %}

views/welcome/hello.html

<p>Hello from the templated page.</p>

现在我想做的是使用webpack捆绑任何js、css,并使用HTML webpack插件创建HTML页面,并将这些样式和脚本注入:

dist/index.html
dist/bundle.js
dist/styles.css

在我的dist/index.html中,我希望得到这样的结果,生成的html页面显示为html:

<h1>This is my main index page</h1>
<p>Hello from the templated page.</p>
<h1>This is my main index page</h1>
{% includes './welcome/hello.html' %}

如果无法编译模板,是否可以使用Html Webpack插件复制所有模板(将所有模板文件的整个目录复制到/dist,以便维护它们的路径)?

谢了!

共有1个答案

单于海荣
2023-03-14

您可以使用ejs-render-loader。参见包装。

 // webpack
         new HtmlWebpackPlugin({
                filename: 'a.html',
                hash: true,
                template: 'ejs-render?a.ejs',
         })
 // a.ejs
    <%- include components/menu -%>

 // components/menu.ejs
    <p>hei hei hei hei</p>

我认为可以将.html更改为.ejs文件。并使用类似上面的插件。

 类似资料:
  • 什么是模板 你一定听说过一种叫做MVC的设计模式,Model处理数据,View展现结果,Controller控制用户的请求,至于View层的处理,在很多动态语言里面都是通过在静态HTML中插入动态语言生成的数据,例如JSP中通过插入<%=....=%>,PHP中通过插入<?php.....?>来实现的。 通过下面这个图可以说明模板的机制 图7.1 模板机制图 Web应用反馈给客户端的信息中的大部分

  • 4.6. 文本和HTML模板 前面的例子,只是最简单的格式化,使用Printf是完全足够的。但是有时候会需要复杂的打印格式,这时候一般需要将格式化代码分离出来以便更安全地修改。这些功能是由text/template和html/template等模板包提供的,它们提供了一个将变量值填充到一个文本或HTML格式的模板的机制。 一个模板是一个字符串或一个文件,里面包含了一个或多个由双花括号包含的{{ac

  • 问题内容: 我有一个React应用,其中有许多导入相同模块的组件。webpack是否为每个请求它的文件导入每个模块一次,从而导致重复的代码(在这种情况下,每个模块仅对两个组件导入两次)?我正在考虑重新编写组件,以便子组件不需要使用React模块,但是也许我正在解决一个不存在的问题。我想避免同一反应模块的多次导入,如果它导致重复的代码。 组件1 组件2导入相同的3个模块。 问题答案: 不能,webp

  • 问题内容: 我正在尝试编写一个Eclipse模板,该模板将在创建属性时创建getter和setter。我当前的模板有效,除了用于吸气剂和吸气剂的骆驼壳。 私人$ {type} $ {field}; 私人$ {type} get $ {field}(){返回$ {field};} private void set $ {field}($ {type} $ {field}){this。$ {field

  • 我正在使用与Freemarker启动的Spring Boot。 给定以下字符串: 我试图对这个字符串执行一些验证,以确保它包含正确的Freemarker语法。 ----提示:如果已知失败的表达式在法律上引用了有时为null或缺少的内容,可以指定默认值,如myoptionalvar!mydefault,或者使用<#If myoptionalvar??>when-present<#else>when-

  • beego 的模板处理引擎采用的是 Go 内置的 html/template 包进行处理,而且 beego 的模板处理逻辑是采用了缓存编译方式,也就是所有的模板会在 beego 应用启动的时候全部编译然后缓存在 map 里面。 模板目录 beego 中默认的模板目录是 views,用户可以把模板文件放到该目录下,beego 会自动在该目录下的所有模板文件进行解析并缓存,开发模式下每次都会重新解析,