0

jquery ファイルまたはそれに関するファイルを node.js 読み取り html ファイルにロードするのに問題があります。私はこれにかなりの時間を費やし、Web ベースの Google がホストするライブラリ ファイルは正常に機能することに気付きましたが、ローカル ファイルは機能しません。理由がわかりません。おそらく、正しいディレクトリに向けていないのでしょうが、どこに置くか、または向けるかはわかりません。

ディレクトリにはこれら 3 つのファイルが含まれます

index.html
jquery.min.js
loadfile.js

index.html コメントアウトされた Google がホストする jquery ファイルは問題なく動作します。しかし、地元はそうではありません。

<!DOCTYPE html>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="jquery.min.js"></script>
        <!-- <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>  -->
        <script type="text/javascript">
            $(document).ready(function() {
                alert("test");
            });
        </script>
    </head>
    <body>
        Hi!
    </body>
</html>

ノードでロードするファイルは次のとおりです。loadfile.js

var http = require('http');
var url = require('url');
var fs = require('fs');


server = http.createServer(function (request, response) {
    current_url = url.parse(request.url).pathname;

    file_path = __dirname + current_url;    

    var tmp = file_path.lastIndexOf('.');
    var ext = file_path.substring(tmp + 1);

    console.log(ext);

    if(ext == 'js')
        response.writeHead(200, {'Content-type': 'text/javascript'});
    else if(ext == 'css')
        response.writeHead(200, {'Content-type': 'text/css'});
    else
        response.writeHead(200, {'Content-type': 'text/html'});

    if(current_url == '/') {
        fs.readFile('index.html', 'utf8', function (errors, contents) {
            response.end(contents); 
        });
    } else {
        response.end();
    }

});

server.listen(8000);
console.log("Running in localhost at port 8000");

このエラー Uncaught ReferenceError: $ is not defined on the $(document).ready 行が表示されます。jquery をロードしたとは思えないためです。

どんな助けでも大歓迎です。Google でホストされているファイルをいつでも使用できますが、これはうまくいきません。前もって感謝します!

4

1 に答える 1

3

が「/」でない場合、実際にはファイルを提供していません。現在、サーバーはファイルのコンテンツのみをクライアントに送信できます。current_urlindex.html

「else」句に次のようなものが必要です。

fs.readFile(file_path, 'utf8', function (errors, contents) {
    response.end(contents); 
});
于 2013-06-22T04:41:04.667 に答える