如果在经典ASP页面中我写道:
<%pippa="Camilla"%>
<!DOCTYPE html>
页面源代码中的我在<!DOCTYPE html>
之前会有一个空行。
如何删除它? 我是新手,我可以像这样写一行:
<%pippa="Camilla"%><!DOCTYPE html>
但在其余的代码中似乎很奇怪。 有什么办法可以解决吗? 如果是,是否可以在 web.config ?
中使用解决方案如何使用动态内容压缩?
答案 0 :(得分:2)
您无法将其删除。在服务器上运行代码时,将执行<% %>
标记内的代码,并将任何输出放在其位置。 ASP源中的所有其他字符保持不变。因此,在初始结束%>
标记之后的换行符保持不变。
唯一的解决方法就是你自己建议的方式。即:
<%pippa="Camilla"%><!DOCTYPE html>
不漂亮,但它有效。
答案 1 :(得分:2)
这是服务器端代码生成的关键之一,ASP处理器只处理ASP代码(内嵌代码块<% %>
内的代码)。
这意味着任何其他HTML都保留“按原样”,包括回车和换行等特殊字符。
因此,当ASP处理您的页面时,它会看到
⏎
<!DOCTYPE html>
⏎表示回车,LineFeed
因此,您已经在问题中说明了避免这种情况的唯一方法是将内嵌代码块放在同一行上。
<% pippa="Camilla" %><!DOCTYPE html>
另一种方法是将HTML和代码分配分成不同的部分。我通常通过将我的HTML置于其自己的Sub
/ Function
内并使用Init()
函数传递或分配页面中的变量来执行此操作,您仍然会发现自己处理的代码如此;
<%
Sub DisplayHTML()
%><!DOCTYPE html>
...
</html><% End Sub %>
哪个不漂亮,所以我倾向于忽略尾随新行,除非它影响页面的呈现(IE兼容模式等)。
在代码中处理HTML的另一种方法是构建HTML模板以加载HTML并替换占位符定义的值。