将外部JavaScript库添加到Eclipse项目?

4
当向Eclipse项目添加外部JavaScript库时,我应该添加.js文件(d3.v2.js),还是从Github拉取的tarballed主文件?
谷歌告诉我要谷歌一下。接下来的搜索提醒我需要谷歌一下。
目录树:
.
 |-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 -> New -> JavaScript Source File -> Advanced -> Link to File in Filesystem -> /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 Resources -> Add JavaScript Library -> User Library - Configure User Libraries -> New -> "D3" -> Add .js file -> d3.v2.js (location: /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文件(由于人为错误)
1个回答

6
Eclipse部署到Tomcat的内容是在WebContent文件夹中的。如果JS文件不在WebContent中,则它们将不会成为已部署的Web应用程序的一部分。
您需要了解的是Eclipse显示给您的是开发源文件夹,而实际部署的是符合Java EE规范的目录结构:
- WebContent中的所有内容都是已部署的存档的一部分。 - Java源文件被编译并存储在已部署的存档的WEB-INF / classes中。 - 源目录下的非Java文件被复制到已部署的存档的WEB-INF/classes中。 - 所有其他文件不是已部署的存档的一部分。

将d3文件夹移动到WebContent中。src="d3/d3.v2.js"。通过Tomcat部署时,d3仍然没有产生任何形式的输出。从浏览器加载HTML文件时,它可以完美地工作。 - user1260503
消息:/Snotra/d3/d3.v2.js || 描述:所请求的资源(/Snotra/d3/d3.v2.js)不可用。Tomcat6正在运行。 - user1260503
那么要么你没有将文件放在你说放的地方,要么你还没有重新部署 web 应用程序。 - JB Nizet
我现在正在看它...d3.v2.js在Foo/WebContent/d3/d3.js中。我不会对你说谎,关于我把一个文件放在哪个目录下... - user1260503

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接