You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Nunjucks在特定标签区域自动添加空格

如何阻止Nunjucks在特定标签区域自动添加空格

看起来你遇到的是Nunjucks自动格式化模板标签,给你的<?!= ... ?>语法插入了多余空格的问题。这种情况通常是因为Nunjucks把这段内容识别成了模板语法的一部分,然后做了格式化处理。这里有几个可行的解决办法:

  • 方法一:用raw标签包裹需要保留原样的代码块
    Nunjucks的raw标签会告诉模板引擎,包裹在内的内容不需要被解析或修改,完全保持原样输出。你可以把整个<script>标签用raw和endraw包裹起来:

    {% raw %}
    <script>
       //debug | see parameter data in terminal and on page
        function displayParameterData() {
          const datags = <?!= JSON.stringify(data) ?>;
          console.log(datags);
          document.write(JSON.stringify(datags));
       }
       displayParameterData();
    </script>
    {% endraw %}
    

    这样Nunjucks就不会触碰里面的任何内容,包括你要保留的<?!= JSON.stringify(data) ?>标签。

  • 方法二:单独输出需要保留的标签文本
    如果你只需要保留这一行的标签,而不是整个script块,可以把这段标签作为字符串用safe过滤器输出,避免Nunjucks解析或添加空格:

    <script>
       //debug | see parameter data in terminal and on page
        function displayParameterData() {
          const datags = {{ '<?!= JSON.stringify(data) ?>' | safe }};
          console.log(datags);
          document.write(JSON.stringify(datags));
       }
       displayParameterData();
    </script>
    

    safe过滤器会告诉Nunjucks这段内容是安全的HTML/文本,不需要转义或格式化,直接输出即可。

另外补充一句:如果你其实是想让Nunjucks渲染data变量(而非保留<?!= ... ?>标签本身),那应该使用Nunjucks标准的输出语法{{ JSON.stringify(data) }},不需要额外的标签,自然也不会出现空格问题。不过从你的描述来看,你更需要的是保留标签原样,所以上面的两种方法更贴合你的需求。

备注:内容来源于stack exchange,提问作者klewis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:45:31