4

外部JavaScriptライブラリをEclipseプロジェクトに追加する場合、.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->新規->JavaScriptソースファイル->詳細->ファイルシステム内のファイルへのリンク->/home/tyler/workspace/foo/d3/d3.v2.js

  2. 5つの異なるパスを試しました。それらのどれも機能しませんでした(相対的、絶対的を使用する必要がありますか?)

    • src = "/ home / tyler / worksheet / 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 / worksheet / 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が表示するのは、開発用のソースフォルダーであることを理解する必要があります。デプロイされるのはこのフォルダーではなく、JavaEE仕様に準拠したディレクトリ構造です。

  • WebContentのすべては、デプロイされたアーカイブの一部です
  • Javaソースファイルはコンパイルされ、デプロイされたアーカイブのWEB-INF/クラスに保存されます
  • ソースディレクトリの下にある非Javaファイルは、デプロイされたアーカイブのWEB-INF/クラスにコピーされます。
  • 他のすべてのファイルは、デプロイされたアーカイブの一部ではありません。
于 2012-11-18T17:30:27.190 に答える