【问题标题】:Can't locate .js (or .css) files from a .jsp page无法从 .jsp 页面定位 .js(或 .css)文件
【发布时间】:2012-03-26 22:33:49
【问题描述】:

我在 Windows 7 Ultimate 下从 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= 网址有误吗?如果不是,还有什么会导致这些 404 错误?

感谢您的帮助。

【问题讨论】:

  • 您使用的是什么 src URL?您请求的页面的 URL 是什么?你可以通过在浏览器地址栏中输入路径来直接访问 hs 或 CSS 吗?

标签: java jsp servlets


【解决方案1】:

WEB-INF 不公开。它通常用于存储 JSP 和库文件和描述符。如果您想引用您的 javascript 和 css 资源,而不必通过一些从类路径加载它们的调度程序(即您想像常规 Web 资源一样引用它们),它们应该位于 WEB-INF 之外的其他目录中。

所以我建议创建 Projects/MyServer/WebContent/jsProjects/MyServer/WebContent/css 并将你的 js 和 css 放在适当的文件夹中。那么src属性可以指向/js/Modernizr-2.5.3.js和/css/mycss.css

【讨论】:

  • 感谢 DigitalJoe,正如我在上面对 Dmitry 所说的那样,我觉得奇怪的是,名为“WEB-INF”(可能是“Web Info”)的东西不能包含 Web 可访问资源。你的具体路径帮助我弄清楚事情的发展方向,我现在已经开始运行了/
【解决方案2】:

WEB-INF 用于类和属性文件,它不应该用于 JSP 和其他可链接资源。您应该将文件移动到 Web 应用程序的根目录或其下的其他目录中。

【讨论】:

  • 感谢 DMitry,但我觉得奇怪的是,名为“WEB-INF”(可能是“Web Info”)的东西不能包含 Web 可访问资源!
猜你喜欢
  • 1970-01-01
  • 2014-12-31
  • 2014-02-08
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多