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

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

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

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

Q&A

解決済

2回答

8095閲覧

node.jsで画像やcssの読み込み処理を簡略化したい

sanset

総合スコア186

Node.js

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

1グッド

3クリップ

投稿2015/07/21 14:05

node.js+sokect.io+expressでお絵かき共有機能を作っております。

node.jsでjsファイルを起動させて、指定のhtmlファイルを動かしているのですが、
その際に画像やcssファイルは、apacheが起動していないからindex.htmlから読み込むことができません。
node.を使用する際は、読み込む必要があるファイルは必ず予め記述しておく必要がありますか?簡略化することは出来ますでしょうか?
もしくはapacheのように記述できる方法などありますでしょうか?(これが出来るのが一番望ましいです)
使うcssと画像ファイルの数だけ、以下のように長いコードになってしまいますので、省略できる方法を探しています。

javascript

1var express = require('express') 2 , http = require('http') 3 , app = express() 4 , server = http.createServer(app) 5 , io = require('socket.io').listen(server); 6 7server.listen(80); 8 9app.get('/', function (req, res) { 10 res.sendfile(__dirname + '/index.html'); 11}); 12 13//これ以下の記述をシンプルにしたい 14 15app.get('/css/reset.css', function (req, res) { 16 res.sendfile(__dirname + '/css/reset.css'); 17}); 18 19app.get('/css/bootstrap.min.css', function (req, res) { 20 res.sendfile(__dirname + '/css/bootstrap.min.css'); 21}); 22 23app.get('/css/common.css', function (req, res) { 24 res.sendfile(__dirname + '/css/common.css'); 25}); 26 27app.get('/img/top/1.png', function (req, res) { 28 res.sendfile(__dirname + '/img/top/1.png'); 29}); 30 31app.get('/img/top/2.png', function (req, res) { 32 res.sendfile(__dirname + '/img/top/2.png'); 33}); 34 35app.get('/img/top/3.png', function (req, res) { 36 res.sendfile(__dirname + '/img/top/3.png'); 37}); 38 39app.get('/img/top/4.png', function (req, res) { 40 res.sendfile(__dirname + '/img/top/4.png'); 41}); 42 43app.get('/img/top/5.png', function (req, res) { 44 res.sendfile(__dirname + '/img/top/5.png'); 45}); 46 47app.get('/img/top/6.png', function (req, res) { 48 res.sendfile(__dirname + '/img/top/6.png'); 49}); 50 51app.get('/img/top/7.png', function (req, res) { 52 res.sendfile(__dirname + '/img/top/7.png'); 53}); 54 55app.get('/img/top/8.png', function (req, res) { 56 res.sendfile(__dirname + '/img/top/8.png'); 57}); 58 59app.get('/img/top/9.png', function (req, res) { 60 res.sendfile(__dirname + '/img/top/9.png'); 61}); 62

コードか、参考サイトでご教示いただければ理解しやすいです。
よろしくお願いします。

shotakeu👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

static ミドルウェアが使えます。

lang

1var express = require('express') 2 , http = require('http') 3 , app = express() 4 , server = http.createServer(app) 5 , io = require('socket.io').listen(server); 6 7server.listen(80); 8 9app.get('/', function (req, res) { 10 res.sendfile(__dirname + '/index.html'); 11}); 12 13app.use('/css', express.static('css')); 14app.use('/img', express.static('img'));

Serving static files in Express

投稿2015/07/21 14:52

ngyuki

総合スコア4514

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

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

sanset

2015/07/22 10:43

ご連絡遅れて申し訳ありません。 素早く分かりやすい解答をありがとうございます。無事動作確認できました。 また何かございましたらよろしくお願い致します。
guest

0

app.use(express.static('public')); と記述することで、 public ディレクトリ以下のファイルやディレクトリをそのまま配信することができます。

たとえば public/css/reset.css を配置すると http://yourdomain.com/css/reset.css からアクセスできます。(URL には public を含まないことに注意してください)

この設定は複数のディレクトリについて記述できます:

javascript

1app.use(express.static('public')); 2app.use(express.static('files'));

また URL のパスのプレフィクスを指定できます:

javascript

1app.use('/static', express.static('public')); 2// public/css/reset.css にアクセスするには 3// http://yourdomain.com/static/css/reset.css

詳しくは Express のドキュメントを参照してください: Serving static files in Express

投稿2015/07/21 15:06

uasi

総合スコア93

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

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

sanset

2015/07/22 10:44 編集

ご連絡遅れて申し訳ありません。 素早く分かりやすい解答をありがとうございます。 お二人に解答を頂きまして、どちらも大変参考にさせていただけたのですが、 ベストアンサーは1名にしかつけれないため、先に解答頂いた方に付けさせていただきました、申し訳ございません。 また何かございましたらよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問