dklight
@dklight
php кодер - level 2.5

Как подключить бутстрап к проекту?

есть такой index.js
var express = require("express");
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

server.listen(3000);

app.get('', function(request, response){
	response.sendFile(__dirname + "/index.html");
});

запускаю в консоли --> node index
открываю в браузере localhost:3000
и получаю то, что содержится в index.html

а в этом index.html есть строка:
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"> -->
	<link rel="stylesheet" href="./node_modules/bootstrap/dist/css/bootstrap.min.css">

так вот, если просто открыть с локального сервера (nginx), пресловутый бутсрап подключается и стили применяются.
Если же просто открыть localhost:3000, то получаю index.html, но бутстрап не подключается...

И вопрос, есть ли способ подключать как нибудь этот бутстрап, который уже я установил с помощью nmp, и который уже содержится в node_modules, вместо того, чтобы тащить файлы бутстрапа с интернета, используя пресловутый
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
  • Вопрос задан
  • 1362 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta
инженер
Положить пресловутый bootstrap.min.css рядом с index.html и загрузить его в link, очевидно же.
Ну или по взрослому заморочиться системой сборки шаблонов.

То что вы его установили с помощью npm значит лишь то, что в node_modules окажется соответствующая папка, но это модули сервера, а на фронт пойдет что экспресс покажет.

sendFile вы делаете зря, поставьте express-static
https://expressjs.com/ru/starter/static-files
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
var express = require("express");
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

app.get('/bootstrap.min.css', (function() {
  // на другой машине bootstrap может установится в другое место
  // разрезолвим его путь средствами ноды и сохраним в замыкании
  var cssFile = require.resolve('bootstrap/dist/css/bootstrap.min.css');
  return function(req, res) {
    res.sendFile(cssFile);
  };
})());

app.get('/', function(request, response){
  response.sendFile(__dirname + "/index.html");
});

server.listen(3000);

ну и в html теперь путь поправим:<link rel="stylesheet" href="/bootstrap.min.css">
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы