我在Windows 7旗舰版的Eclipse Indigo下运行Tomcat 5.54应用服务器。我的servlet正在使用.jsp,而.jsp页面包含(以及其他)以下内容以将一些JavaScript“包含”到.jsp中:
当servlet运行时,显示.jsp页面,但是我收到404错误,例如“请求的资源(/MyServer/WebContent/WEB-INF/JSP/Scripts/Modernizr-2.5.3.js)不可用。”在.jsp页面中包含的所有.js和.css文件中。
相关文件位置为: ./WEB-INF/JSP .jsp文件 ./WEB-INF/JSP/编写.js文件 ./WEB-INF/JSP/CSS .css文件
特别是,Modernizr-2.5.3.js位于(由Eclipse管理)位于。\ Projects \ MyServer \ WebContent \ WEB-INF \ JSP \ Scripts \ Modernizr-2.5.3.js。据我所知,“包含”内容的路径,如.js,.css,图像等,与提交的URL的位置有关,而不是相对于显示的.jsp,我理解这是处理此问题的最佳方法是在src = URL中使用完全限定的路径,我相信我在做。但是,我收到404错误。我已经尝试将Modernizr-2.5.3.js(作为测试用例)放在“所有地方”,我从来没有能够消除404错误。 (我意识到我可以从网上提取这个特殊的脚本,但这并不能解决我的问题。)
我在src = URL中有错误吗?如果没有,还有什么会导致这些404错误?
感谢您的帮助。
答案 0 :(得分:2)
WEB-INF无法公开发布。它通常用于存储JSP和库文件和描述符。如果你想引用你的javascript和css资源而不必经过一些从类路径加载它们的调度程序(即你想像常规的web资源一样引用它们),它们应该在WEB-INF之外的其他目录中。 / p>
所以我建议创建Projects/MyServer/WebContent/js
和Projects/MyServer/WebContent/css
并将你的js和css放在相应的文件夹中。然后src属性可以指向/js/Modernizr-2.5.3.js和/css/mycss.css
答案 1 :(得分:1)
WEB-INF用于类和属性文件,不应该用于JSP和其他链接资源。您应该将文件移动到Web应用程序的根目录或其下的其他目录。