当我加载我的Express网页时,我收到以下错误:
快车 500错误:/app/views/index.jade:114 112 | td 2 113 | td 4年> 114 |输入是自我关闭的,不应该有内容。
112| td 2
113| td 4 years
> 114|
input is self closing and should not have content.
at Object.Compiler.visitTag (/app/node_modules/jade/lib/compiler.js:434:15)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitBlock (/app/node_modules/jade/lib/compiler.js:278:12)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitTag (/app/node_modules/jade/lib/compiler.js:443:12)
at Object.Compiler.visitNode (/app/node_modules/jade/lib/compiler.js:210:37)
at Object.Compiler.visit (/app/node_modules/jade/lib/compiler.js:197:10)
at Object.Compiler.visitBlock (/app/node_modules/jade/lib/compiler.js:278:12)
当使用foreman start在本地运行时,只有当它在服务器上时才会显示。
答案 0 :(得分:16)
看起来你的输入标签里面有内容。在HTML中,输入标签不能包含内容,因此您应该删除jade文件中输入标签后面的任何空格或字符。
实施例
input(type="text",name="whatever") something
应该是 input(type="text",name="whatever",value="something")
答案 1 :(得分:1)
有时候答案比同一行上的标签之后的某些内容(例如几个空格)有点琐碎。请注意错误输入标记缩进后的行!
答案 2 :(得分:0)
我遇到了类似的问题:
div
+inputWithTextContent('whatever', 'something')
mixin inputWithTextContent(name, message)
!='<input type="text" name="'+name+'">'+message+'</input>'
答案 3 :(得分:0)
遇到同样的错误后,我正在检查错误报告中标记的玉石模板行。它实际上包含输入定义,但该定义很好,因为没有任何空格和可打印的内容接替它。下面的行甚至更少缩进(两个级别用于启动另一行表单),因此在标记行中定义的输入元素肯定没有内容。
然而还有另一个输入在此标记后面的几行输入模板。并且该输入元素确实具有一些从属内容。删除内容有点误解“这里”。
答案 4 :(得分:0)
另一种解决方案是在输入后创建标签,然后将其显示为内联。这将标签位于控件旁边。这就是我用jade中的复选框输入解决问题的方法。
JADE(Bootstrap):
.checkbox
label
input(type='checkbox', value='remember-me',)
label.inlineLabel Remember me
SASS:
label.inlineLabel
display: inline