6

ExpressJSを使用しています。スクリプトまたは CSS が読み込まれません。

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<title>Customer Info</title>

    <link rel="stylesheet" href="/stylesheets/testing.css" type="text/css" media="screen" charset="utf-8"/>

    <script type="text/javascript" src="/javascripts/jquery-1.9.1.js"></script>
    <script src="/javascripts/jquery-ui-1.10.2.custom.js" type="text/javascript" charset="utf-8"></script>

    <script type="text/javascript" src="/javascripts/testing.js"></script>



  </head>
   <body>
        //body contents
   </body>
</html>

問題が場所にないことはわかっています。この EJS ビューをエクスプレスでレンダリングすると、どのスクリプトも読み込まれません。ほぼ同じビューで機能する理由がわかりませんが、これでは機能しません。何か案は?

4

3 に答える 3

4

ステップ1

node.jsファイルで、エクスプレスを構成する部分を見つけます。

のようになります。

 var express = require('express')
               , app = express();

 app.configure(function() {
    //configure the express codes go here
 }

その中で、静的ファイルを提供するフォルダーを構成するコード行を確認してください。画像、css、js など。私は好きです。

app.use(express.static(__dirname + '/public'));

ここで、上記の場合、上記のhtmlで言及したandフォルダーpublicを保持する親フォルダーの名前と正確に一致する必要があります。stylesheetsjavascripts

お気に入り

--app.js
--package.json
--views/
--node_modules/
--public/
     --stylesheets/
        --testing.css
     --javascripts/
        --jquery-1.9.1.js
        --jquery-ui-1.10.2.custom.js
        --testing.js

ステップ2

上記が正しく構成されている場合は、確認できます

app.use(express.static(__dirname + '/public'));

設定で先に来る

app.use(app.router);

これにより、ルーターに記述した 404 ルート ハンドラーによって回線が無視されないようにすることができます。

ステップ 3

Firebugまたはを使用してレンダリングされたページをChrome inspector検査し、ネットワーク タブで、言及した js および css ファイルに対して受け取った応答を確認できます。あなたの質問によると、それは 404 file not found である必要があり、それ以外の場合は質問で更新する必要があります。

ステップ 4

それでも問題を解決できない場合は、使用している node.js コードで質問を更新する必要があります。調べることができるように。

于 2013-04-18T08:02:46.773 に答える
1

js フォルダーと css フォルダーを含むアセットまたはパブリック フォルダーにリンクする静的リンクを使用するには、expressJS を に設定する必要があります。

express.static(__dirname + '/assets', { maxAge: 24*60*60*1000 }

次に、href リンクの先頭にドットを使用するか、代わりにサーバー URL を追加します。例:

<link rel="stylesheet" href="../css/test.css" type="text/css" >

于 2013-04-17T17:54:20.860 に答える