簡體   English   中英

在快速靜態中使用中間件在節點js中不起作用

[英]using middleware in express static is not working in node js

我是Node js的新手。 我正在嘗試創建一個節點js應用程序,並按如下所示配置app.js。

var express = require ('express');

var app = express();

app.set('view engine', 'ejs');
app.use(express.static('resources'));

app.get('/', function(req, res){
    res.render('index');
});

app.listen(3000);

我正在使用幾個局部視圖,並將所有局部視圖注入main.ejs,最后將main.ejs注入index.ejs

要將bootstrap和jquery應用於所有視圖,我在index.ejs文件中調用它們。

Index.ejs:

<!DOCTYPE html>
<html>
<head>
    <title>New page</title>
    <link type="text/css" href="/resources/bootstrap.min.css">
    <script type="text/javascript" src="/resources/bootstrap.min.js"></script>
    <script type="text/javascript" src="/resources/jquery-3.3.1.slim.js"></script>
</head>
<body>
    <% include main.ejs %>
</body>
</html>

main.ejs

<!DOCTYPE html>
<html>
<head>
    <title>New page</title>
</head>
<body>
    <% include partials/partial_page.ejs %>
</body>
</html>

partial_page.ejs

<!DOCTYPE html>
<html>
<head>
    <title>New page partial</title>
</head>
<body>
    New Page 2
    <button class="btn btn-primary">AAAA</button>
</body>
</html>

所有靜態文件都存儲在資源文件夾中。

這些引導程序和jquery無法正常工作,我無法從中獲得任何結果。 控制台出現404錯誤,即Bootstraps和jquery。 這是怎么了

嘗試從index.ejs之外的所有內容中刪除<!DOCTYPE>htmlheadbody標記。 您不需要它們,因為部分是在index.ejs中呈現的,這就是您的路線所指向的地方。

您可以使用app.use(express.static(__dirname + '/resources'));

<script type="text/javascript" src="/resources/bootstrap.min.js"></script>更改為<script type="text/javascript" src="bootstrap.min.js"></script>

var express = require ('express');

var app = express();


app.set('view engine', 'ejs');
app.use(express.static(__dirname,'resources'));
app.engine('html',require('ejs').renderFile);

app.get('/', function(req, res){
    res.render('index');
});

app.listen(3000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM