tornado template預設壓縮空白字元導致coffee無法正確縮排

KJ發表於2014-08-28

第一次使用在 tornado 裡面寫 coffeescript 的時候, 我被結果驚呆了.

大家知道 coffeescript 的偷懶寫法是直接在 html 裡面開工

<script type="text/coffeescript">
</script>

但是, tornado 的模版無情的刪除了所有縮排(對於html和js檔案來說, 這就是壓縮)

開啟tornado的template.py一看

def __init__(self, template_string, name="<string>", loader=None,
             compress_whitespace=None, autoescape=_UNSET):
    self.name = name
    if compress_whitespace is None:
        compress_whitespace = name.endswith(".html") or 
            name.endswith(".js")

如果是 .html 和 .js 結尾的模版檔案渲染, 就會預設開啟 compress_whitespace.

當時很沮喪…

不過下一秒鐘我們就想到了解決方法: 把檔名改為 .htm 不就好了 ?
你想到了嗎?

相關文章