【问题标题】:Remove line break from CSS code on FreeMarker?从 FreeMarker 上的 CSS 代码中删除换行符?
【发布时间】:2014-04-10 20:08:01
【问题描述】:

我是 FreeMarker 的新手,我正在为一些代码渲染而苦苦挣扎……如果我能对正在发生的事情有任何提示,那就太好了。 基本上,我所做的是迭代来自 CMS 的信息并构建 CSS 规则来定义元素的背景。 我使用的代码是:

<style type="text/css">
    <#list backgroundTest as backgroundTestRule>
        <#if backgroundTestRule.elementID?? && backgroundTestRule.elementID != "">
            <#assign selectorID = backgroundTestRule.elementID?lower_case?replace("[^a-z0-9\\[\\]]", "", "ri")>
        <#else>
            <#assign selectorID = "">
        </#if>
        .foo${"#${selectorID}"} {
            background: url(${selectorID.backgroundImage.url}) no-repeat;
        }
    </#list>
</style>

当我检查代码时,我得到了这个:

    .foo#selectorid {
        background: url(foo.jpg
) no-repeat;
    }

代码只有在我不在后台 URL 上使用“”时才有效(背景:url(“foo.jpg”)),我想这是因为它在括号关闭之前添加了一个换行符。 我尝试使用从此处获取的一些选项:http://freemarker.org/docs/dgui_misc_whitespace.html 和此处:http://freemarker.org/docs/ref_directive_t.html,但没有任何效果(、 等)。

谢谢,问候!

【问题讨论】:

  • .foo 是什么类型的项目?

标签: java html css freemarker


【解决方案1】:

试试这个:

background: url(${selectorID.backgroundImage.url?chop_linebreak}) no-repeat;

看起来selectorID.backgroundImage.url 参数末尾有一个换行符。

【讨论】:

  • 非常感谢,成功了!那么,这个换行符来自 CMS 输入吗?我要读一下chop_linebreak。
  • 是的,CMS 正在发送该换行符。
  • 如果数据源周围容易出现多余的空白,您最好使用whatever?trim
猜你喜欢
  • 1970-01-01
  • 2011-07-12
  • 2022-10-05
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
相关资源
最近更新 更多