Базовый веб-сервер с node.js и выражает для обслуживания html файла и активов
Я делаю некоторые эксперименты с интерфейсом, и я бы хотел иметь очень простой веб-сервер, чтобы быстро запустить проект и обслуживать файлы (один файл index.html + некоторые файлы css/js/img). Поэтому я пытаюсь сделать что-то с node.js и выразить, я играл с обоими уже, но на этот раз я не хочу использовать движок рендеринга, так как у меня будет только один статический файл, с этим кодом Я получаю html файл, но не активы (ошибка 404):
var express = require('express'),
app = express.createServer();
app.configure(function(){
app.use(express.static(__dirname + '/static'));
});
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
app.listen(3000);
Есть ли простой способ сделать это (по возможности, в одном файле) или Express требует использования механизма просмотра и рендеринга?
Ответы
Ответ 1
Вы можете использовать решение, подобное этому в node.js (ссылка больше не работает), так как Раньше я писал блоги.
Подводя итог, установите соединение с npm install connect
.
Затем вставьте этот код в файл с именем server.js
в той же папке, что и ваши файлы HTML/CSS/JS.
var util = require('util'),
connect = require('connect'),
port = 1337;
connect.createServer(connect.static(__dirname)).listen(port);
util.puts('Listening on ' + port + '...');
util.puts('Press Ctrl + C to stop.');
Теперь перейдите к этой папке в вашем терминале и запустите node server.js
, это даст вам временный веб-сервер в http://localhost:1337
Ответ 2
Я столкнулся с этим, потому что у меня такая же ситуация. Мне не нужны или как шаблоны. Все, что вы помещаете в public/directory в express, получает статический контент (точно так же, как Apache). Поэтому я поместил там свой index.html и использовал sendfile для обработки запросов без файла (например: GET http://mysite/):
app.get('/', function(req,res) {
res.sendfile('public/index.html');
});
Ответ 3
Следующий код работал у меня.
var express = require('express'),
app = express(),
http = require('http'),
httpServer = http.Server(app);
app.use(express.static(__dirname + '/folder_containing_assets_OR_scripts'));
app.get('/', function(req, res) {
res.sendfile(__dirname + '/index.html');
});
app.listen(3000);
загружает страницу с активами