7

私は (伝統的な) サーバー サイド スクリプト (PHP) のバックグラウンドから来ており、Node を使って大騒ぎが何であるかを調べようとしています。

目的:いくつかのスタイル シートとスクリプトを含む単純な Web ドキュメントを提供します。

私のnode.jsスクリプト:

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

fs.readFile('index.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) { 
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(1337, '127.0.0.1');
});

index.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'> 
        <title>Node.js test</title>
        <link rel="stylesheet" media="screen" type="text/css" href="css/plugin.css" />
        <link rel="stylesheet" media="screen" type="text/css" href="css/xGrid.css" />
        <link rel="stylesheet" media="screen" type="text/css" href="css/jquery-ui/jquery-ui-1.10.1.custom.min.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
        <script src="js/slate.js"></script>
        <script src="js/slate.portlet.js"></script>
        <script src="js/slate.message.js"></script>
        <script src="js/plugin.js"></script>
    </head>
    <body>
        <h1 class="styled-h1">Test</h1>
    </body>
</html>

私が直面している問題:

Google CDN からの 2 つのスクリプト インクルードがドキュメントに読み込まれます。ただし、ローカル ファイル システムから呼び出される他のすべてのスタイル シートまたはスクリプトは として解釈されるtext/htmlため、意図した効果がありません。Google Chrome コンソールのスクリーンショットを次に示します。

ここに画像の説明を入力

なぜこれが起こっているのか理解したい。

PS: Express のようなフレームワークを使用して作業を簡単にできることはわかっていますが、まず基礎を把握したいと考えています。

4

4 に答える 4

2

送信されるパスやパラメータに関係なく、1 つのことだけを行う Web サーバーを作成しています。それはindex.htmlMIME タイプでHTML ファイルを提供しますtext/html

CSS ファイルのリクエストは相対パス リクエストです。つまり、Web ブラウザがロード命令をcss/plugin.css確認すると、新しいパスで Web サーバーを呼び出します。しかし、Web サーバーはパスを無視し、index.htmlMIME タイプを返すだけtext/htmlです。お使いの Web ブラウザーは間違った MIME タイプに関するエラーをスローしますが、再読み込みしたことを通知しませんでしindex.htmlた。

自分で確認するには、次のリンクをクリックしてください: http://127.0.0.1:1337/css/plugin.css

于 2013-07-04T22:07:11.453 に答える
0

あなたのサーバーは、すべてのリクエストに固有の応答で応答しています... ブラウザーが CSS とスクリプトを要求すると、サーバーは彼が知っている唯一のことを行います!!!

于 2013-07-04T22:07:00.890 に答える