2

ローカルと heroku サーバーの両方で、heroku Web アプリケーション用の個別の CSS スタイルシートをロードできません。私は最近、Google App Engine から移行しましたが、そこにスタイルシートをロードする方法は完全に正常に機能しました。ここで何が間違っていますか?? どんな助けでも大歓迎です!! これが私のコードです:

/app/server.js

var express = require("express");
var app = express();
app.use(express.logger());

var fs = require("fs");
var buf = fs.readFileSync("html/index.html");
var index = buf.toString();

app.get('/', function(request, response) {
    response.send(index);
});

var port = process.env.PORT || 5000;
app.listen(port, function() {
    console.log("Listening on " + port);
});

/app/html/index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Starters Singapore | Social Group Dating</title>
    <link rel="stylesheet" type="text/css" href="../css/index.css">
  </head>

  <body>
    <div id="testdiv">This is a test</div>
  </body>

</html>

/app/css/index.css

body{
    margin:0;
    text-align: left;
    background-color: #666666;
}

#testdiv{
    width: 50%;
    height: 50%;
    background-color: #00a1ec;
}
4

3 に答える 3

1

css ファイルへの相対パスを使用しています。このパスは、html ファイルではなく、サーバー ルートに対する相対パスです。Heroku NodeJS の経験はありませんが、パスは

/css/index.css

于 2013-08-20T20:34:51.053 に答える
0

Heroku にもアプリをデプロイしています。HTML をレンダリングするには、ejs または jade を使用することをお勧めします。私はejsの方が好きです。Express を使用しているため、この参照を使用して「パブリック」ディレクトリも作成します。 ここに画像の説明を入力

次に、layout.ejsで(ejs-locals npm を使用する Express 2.xx または Express 3.xx の場合)

<!DOCTYPE html>
<html>
  <head>
    <title>The Title</title>
    <% stylesheet('/css/index.css') %>
    <%- stylesheets%>
  </head>
  <body>
  </body>
</html>

また、これを layout.ejs と呼ぶindex.ejsもあるでしょう。

<%- layout('layout') %>

また、ejs でレイアウトを使用する場合は、これを参照することをお勧めします。ejs や jade を学ぶのは、最初は少し面倒かもしれませんが、理解が深まるとうまくいきます。うまくいけば、これはあまりにも多くの答えではありません。

于 2013-08-20T21:20:05.523 に答える