LightTable を使用して nodejs アプリケーションを作成しています<link href="">
。タグでファイルへの相対パスを指定すると、css が正常にロードされているようです。を実行するnode index.js
と、サーバーが起動し、ページが正常にロードされますが、コンソール エラーが発生し、指定したパスに CSS ファイルが見つからないという 404 が表示されます。HerokuForeman Start
も使ってみましたが、サイコロはありません。html は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title>
Home
</title>
<link href="../../styles/master.css" rel="stylesheet" type="text/css" />
</head>
...
これが私のディレクトリツリー構造です:
.
├── Procfile
├── README.md
├── index.js
├── package.json
├── resources
│ └── images
│ └── tokyo.jpg
├── styles
│ └── master.css
└── views
├── get
│ ├── home.html
│ └── posts.html
└── post
└── new.html
編集:質問への回答を見つけた後、以下の情報が関連するようになりました。CSS と背景画像を必要に応じてロードする新しいコードをコメントアウトしました。
これが私のルーティングとサーバーコードです。私は意図的に Express を使用していません。
// routes
var homeREGEX = new RegExp('^/?$');
var newREGEX = new RegExp('^/posts/new/?$');
var postsREGEX = new RegExp('^/posts/?$');
// var cssREGEX = new RegExp('^/styles/master.css/?$'); <--| static resources also
// var tokyoREGEX = new RegExp('^/resources/images/tokyo.jpg/?$'); <--| need routes.
// server
var server = http.createServer(function(request, response){
var pathname = url.parse(request.url).pathname;
if (homeREGEX.test(pathname)) {
renderHome(request, response);
} else if (newREGEX.test(pathname)) {
renderPostForm(request, response);
} else if (postsREGEX.test(pathname)) {
addNewPost(request, response);
// } else if (cssREGEX.test(pathname)) { <--| and they need to get
// sendCSS(request, response); <--| served individually as
// } else if (tokyoREGEX.test(pathname)) { <--| they are requested
// sendTokyo(request, response);
} else {
error404(request, response);
}
});