0

我来自 PHP 背景并使用了一段时间的引导框架,目前正在使用 Node.js 并使用路由项目进行表达。我很难理解如何在视图(index.html)中调用项目资产(js、css、图像等)。

用于包含类似 in (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问题

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、bootstrap css、自定义脚本等)。

4

1 回答 1

0

在我的项目中前进,我使用以下方法将所有资产包含在视图中。

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>
于 2018-06-17T11:14:29.173 回答