在我的Grails GSP文件中,我正在使用HTML元标记:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
问题是Grails会关闭此标记并将其呈现为:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
这使W3C的HTML验证失败(因为我的doctype是HTML而不是XHTML)。 有没有解决这个问题?我怎么能让Grails不解释 元标记?
我正在使用grails-1.2-M4。
跟进: 我为此问题创建了Grails错误GRAILS-5696。
答案 0 :(得分:3)
不确定这是最美丽的解决方案,但至少它适用于您的情况:
<%= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' %>
嗯......这不起作用,因为Grails在按原样显示之前进行了预处理。
所以我看到的唯一解决方案是创建TagLib并输出如下内容:
class MetaTagLib {
static namespace = 'my'
def meta = {
out << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>"
}
}
并使用它:
<my:meta />
有效。测试
答案 1 :(得分:0)
您可以使用<!DOCTYPE html>
(that's it, really!)验证为HTML5而不是HTML 4.01。 HTML5 allows trailing slashes even in the HTML syntax,以便允许这样的系统生成伪XHTML。
当然,HTML5还不是一个完成的标准;它可能会改变。我认为它的这方面不太可能改变,但是对于许多新的HTML5功能仍然存在一些相当有争议的争论,所以请记住它还没有最终确定。