编辑:回答我所做的错误观察时,我们提出了这个问题。请忽略。
我知道JSPF用于定义可以包含在JSP中的片段。
除了这个约定之外,服务器(例如Tomcat)或用户代理(例如firefox,google bot等)如何处理文件存在差异?
我们的网站有一些通过AJAX加载的弹出窗口/对话框。大多数内容都存储在JSPF中,并在url中引用(例如,http://www.domain.com/folder/file.jspf)。最近我们发现,如果弹出窗口是在JSP内部,它将在以下方面表现不同:
1)Google会将其编入索引为独立页面
2)jQuery的$(document).ready(function() {alert('this code is executed')});
永远不会运行。
答案 0 :(得分:2)
首先,浏览器不直接处理JSP或JSPF文件。
相反,浏览器通过URL请求资源,服务器(在您的情况下,Tomcat)使用HTML格式的文档进行响应。
是的,您要求提供.jsp
资源,但服务器编译了该页面,Tomcat将HTML输出生成到浏览器。
此时,浏览器处理了一个纯HTML页面。
我确实看到了通过URL直接访问JSPF文件的潜在问题。片段应包含在特殊的JSP指令中:include
。请参阅Code conventions
Use of Composite View Patterns
答案 1 :(得分:2)
允许构造到达jspf文件的URL的唯一方法是将它们放在与普通JSP文件相同的目录中。 (如果将它们放在/ WEB-INF /中,则不允许这样做) 因此,当您这样做时,将取决于您正在使用的容器。 Tomcat将检索页面作为文本文档。但是,前端Web服务器可以阻止这些URL。 What is .jspf file extension? How to compile it?
希望它有所帮助。