0

私のコードは正常に動作しますが、Javascript 全体をmaps.js. しかし、 の行maps.jsは認識されません。Firebug を使用してデバッグを試みたところ、このファイルの GET が失敗していることがわかりました。

ただし、GET は に対して機能しsocket.io.jsます。localhost:8080 から node.js を使用してシステムを実行しています。ここで私が間違っていることを誰かに教えてもらえますか? または、HTML コードが実行されているときの現在の作業ディレクトリは実際にはどこにありますか? の絶対パスも試しましたmaps.jsが、成功しませんでした。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta type="keywords" content="" />
    <link href="/maps/documentation/javascript/examples/default.css" rel="stylesheet">
    <title>ReSense Client</title>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
    <script type="text/javascript" src="/socket.io/socket.io.js"></script>
    <script type="text/javascript" src="/js/maps.js"></script>
    <script type="text/javascript">
      var socket = io.connect('http://localhost');
      var stockholm = new google.maps.LatLng(59.32522, 18.07002);
      var parliament = new google.maps.LatLng(59.327383, 18.06747);
      var marker;
      var map;
      function initialize() {
        var mapOptions = {
          zoom: 13,
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          center: stockholm
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
        google.maps.event.addListener(marker, 'click', toggleBounce);
      }
      function toggleBounce() {
        if (marker.getAnimation() != null) {
          marker.setAnimation(null);
        } else {
          marker.setAnimation(google.maps.Animation.BOUNCE);
        }
      }
    </script>
  </head>
  <body onload="initialize()">
    <div id="map_canvas" style="width: 500px; height: 400px;">map div</div>
  </body>
</html>
4

2 に答える 2

0

問題は、サーバー側でデフォルトの例を使用した可能性があることです。PHP + Apache ソリューションと比較すると、node.js はそれ自体が一種の「apache」であり、デフォルトでは、直接 URL を持っている場合の Apache のようにサーバー ファイルを処理しません。

これは、node.js で手動でコーディングする必要があります。

それを提供するそのようなファイルへのアクセスでルートを書き留めるかもしれません。これは、静的ファイルを提供する方法を確認するための良い記事です。http://www.sitepoint.com/serving-static-files-with-node-js/

同様に、別のオプションとして、ルーティングに役立つ Express.js フレームワークを使用する方法があります。Dan Crews が以下に書いているように、node.js を強制する追加の構成を使用して、開発者によって処理されたルートがない場合にファイルを静的に提供するようにします。

app.configure(function(){
  app.use(express.static("path/to/public"));
});

node.js は、nginx や apache などの他の Web プラットフォームに期待されることをしないことに注意してください。そのため、自分でそれらの世話をする必要があります。

于 2012-12-20T13:15:50.147 に答える