質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

6040閲覧

ExpressでCSSが反映されない

Waki285

総合スコア2014

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/06/28 06:30

Node.jsでExpressを使ってウェブサイトを作っています。

発生している問題

home.htmlではCSSが読み込まれるが、update.htmlでは読み込まれない。
#ソースコード

index.js

js

1const http = require('http'); 2const express = require("express"); 3const app = express(); 4const path = require("path"); 5app.engine('.html', require('ejs').__express); 6app.set('views', __dirname + '/views'); 7app.set('view engine', 'html'); 8app.use(express.static(path.join(__dirname, 'public'))); 9app.get("/", function(req, res, next) { 10 res.render("home", {}); 11}); 12app.get("/news/update", function (req, res, next) { 13 app.use(express.static(path.join(__dirname, 'public'))); 14 res.render("news/update", {}); 15}); 16app.listen(8080);

home.html

html

1<html> 2 <head> 3 <title>Web Page</title> 4 <meta http-equiv="content-type" content="text/html" charset="utf-8"> 5 <link rel="stylesheet" type="text/css" href="css/style.css"> 6 <link rel="icon" type="image/x-icon" href="assets/favicon.ico"> 7 </head> 8 <body> 9 <h1 class="daimei">Hello World!</h1> 10 </body> 11</html>

update.html

html

1<html> 2 <head> 3 <title>Web Page</title> 4 <meta http-equiv="content-type" content="text/html" charset="utf-8"> 5 <link rel="stylesheet" type="text/css" href="css/style.css"> 6 <link rel="icon" type="image/x-icon" href="assets/favicon.ico"> 7 </head> 8 <body> 9 <h1 class="daimei">アップデート</h1> 10 <h2>アップデート情報</h2> 11 </body> 12</html>

style.css

css

1.daimei { 2 background: #FF0000; 3}

ファイル

/ └index.js └public └css └style.css └assets └favicon.ico └views └home.html └news └update.html

発生しているエラーメッセージ

特になし

使用環境

Node.js v12.22.1
Express 4.17.1
開発環境:Replit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

htmlが読み込まれるのはブラウザ側なのでnews/updateからの相対パスでnews/update/css/style.cssにリクエストが飛んでいるのではないでしょうか
(ブラウザのデベロッパ-ツールのコンソール等でこのパスの404エラーが確認できると思います)
なのでこの場合パスを相対パスで../../css/style.css、もしくは絶対パスで/css/style.cssにする必要があります。

投稿2021/06/28 10:00

編集2021/06/28 10:05
ka2obushi

総合スコア173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Waki285

2021/06/28 23:19

できました!ありがとうございます!
guest

0

多分相対パス違いなのでそこら辺を考慮してこれでどうでしょうか

html

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

投稿2021/06/28 06:50

sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Waki285

2021/06/28 08:53

できませんでした...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問