4

在将外部 JavaScript 库添加到 Eclipse 项目时,我应该添加 .js 文件 (d3.v2.js),还是从 Github 提取的 tarballed master?

谷歌告诉我谷歌它。随后的谷歌提醒我需要谷歌它。


目录树:

.
 |-build
 |---classes
 |-src
 |-WebContent
 |---foo.html
 |---META-INF
 |---WEB-INF
 |-----lib
 |---d3
 |-----d3.v2.js

从 foo.html 到 d3.v2.js 的相对路径应该是:“../d3/d3.v2.js”

  • 但是,也许不是。我不知道。
  • 每当我从 foo.html 引用 d3.v2.js 时,什么都没有发生。什么都没有发生,我的意思是浏览器中没有任何视觉上出现,这表明 d3.js 甚至存在。

要将 d3.v2.js “添加”到 Eclipse,我采取了以下步骤:

  1. Foo -> 新建 -> JavaScript 源文件 -> 高级 -> 链接到文件系统中的文件 -> /home/tyler/workspace/foo/d3/d3.v2.js

  2. 尝试了5种不同的路径。他们都没有工作(你必须使用相对的,绝对的?)

    • src="/home/tyler/workspace/Foo/d3/d3.v2.js"
    • src="../d3/d3.v2.js"
    • src="/Foo/d3/d3.v2.js"
    • src="d3.v2.js"
  3. 因此,我删除了 Eclipse 中对 d3.v2.js 的引用,并尝试将其添加为库。

  4. Foo -> JavaScript 资源 -> 添加 JavaScript 库 -> 用户库 - 配置用户库 -> 新建 -> “D3” -> 添加 .js 文件 -> d3.v2.js(位置:/home/tyler/workspace/Snotra /d3

  5. 尝试了一堆路径。

    • src="d3.v2.js"
    • src="../d3/d3.v2.js"
    • src="/Foo/d3/d3.v2.js"

      1. 冲洗,重复。

有任何想法吗?我知道这很容易,但我只是不了解将 JavaScript 库添加到 Eclipse 的基础知识。

foo.html

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta http-equiv="content-type" content="text/html" charset="utf-8" />
            <title>Tyler J. Fisher</title>
            <link rel="stylesheet" href="master.css" />
        <script type="text/javascript" src="../d3/d3.v2.js"></script>
    </head>

    <body>
         <section id="foo_view">
            <script type="text/javascript">
                            document.write("test"); <!--Works-->
                var dataset[1,2,3,4,5];
                d3.select("body").selectAll("p") <!--Doesn't work-->
                    .data(dataset)
                    .enter()
                    .append("p")
                    .text("RABBLE");
        </script>
     </section>
    </body>
</html>

document.write("test"); 作品。

d3.js 代码没有。

所以(也许):

  • 相对路径必须关闭(或者我可能必须使用绝对路径)
  • Tomcat6 未正确提供 JavaScript(由于人为错误)
  • Eclipse 未正确提供 JavaScript(由于人为错误)
4

1 回答 1

6

Eclipse 部署到 Tomcat 的是里面的内容WebContent。如果您的 JS 文件不在 WebContent 中,它们将不会成为已部署 Web 应用程序的一部分。

您需要了解 Eclipse 向您展示的是您的开发、源文件夹。部署的不是这个文件夹,而是一个符合 Java EE 规范的目录结构:

  • WebContent 中的所有内容都是已部署存档的一部分
  • Java 源文件被编译并存储在已部署存档的 WEB-INF/classes 中
  • 将源目录下的非 Java 文件复制到已部署存档的 WEB-INF/classes
  • 所有其他文件都不是已部署存档的一部分。
于 2012-11-18T17:30:27.190 回答