Управление активами темы Bootstrap в проекте node.js с экспресс-маршрутами - PullRequest
0 голосов
/ 07 июня 2018

Я из PHP-фона и некоторое время использую фреймворк начальной загрузки, в настоящее время работаю над Node.js и проектом express with route.Я сталкиваюсь с трудностями в понимании того, как вызывать ресурсы проекта (js, css, изображения и т. Д.) В представлениях (index.html).

Используется для включения таких файлов, как в (index.php)

<script src="../assets/global/plugins/jquery.min.js" type="text/javascript"></script>
<script src="../assets/global/plugins/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>

Я пробовал подобный подход в Node.js, но кажется, что при использовании маршрутов он был непростым.

Я прошел через несколько SO1 , чтобы понять концепцию, но не смог.

Мой index.js

var express = require("express");
var app = express();
var router = express.Router();
var path = __dirname + '/views/';

router.use(function (req,res,next) {
  console.log("/" + req.method);
  next();
});

Мой index.html

<script src="../assets/jquery.min.js"></script>

Приведенный выше подход не сработал, поэтому я следовал SO2 question

app.use('/assets', [
    express.static(__dirname + '/node_modules/jquery/dist/'),
    express.static(__dirname + '/node_modules/materialize-css/dist/'),
]);

<script src="/assets/jquery.min.js"></script> //in template

Как лучше подходить, так как у меня будут ресурсы (jquery, начальной загрузки css, пользовательские скрипты и т. Д.).

1 Ответ

0 голосов
/ 17 июня 2018

Двигаясь вперед в своем проекте, я использовал следующий подход, чтобы включить все активы в представления.

var express = require("express");
var app = express();
var router = express.Router();
var path = __dirname + '/views/';


    router.use(function (req,res,next) {
        console.log("/" + req.method);
        next();
      });

      app.use('/assets', [
        express.static(__dirname + '/assets/'),
      ]);

      router.get("/",function(req,res){
        res.sendFile(path + "");
      });

      app.use("/",router);

      app.use("*",function(req,res){
        res.sendFile(path + "404.html");
      });

, затем вызывая их в файлах представлений (в index.html ), таких как

<script src="assets/global/plugins/jquery.min.js" type="text/javascript"></script>
<script src="assets/global/plugins/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
...