在快速静态中使用中间件在节点js中不起作用

时间:2019-01-13 05:40:42

标签: javascript node.js

我是Node js的新手。我正在尝试创建一个节点js应用程序,并按如下所示配置app.js。

def destroy
  @user = User.find_by(id: params[:id])
  @user.destroy
end

我正在使用几个局部视图,并将所有局部视图注入main.ejs,最后将main.ejs注入index.ejs

要将引导程序和jquery应用于所有视图,我在index.ejs文件中调用它们。

Index.ejs:

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

<!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>

partial_page.ejs

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

所有静态文件都存储在资源文件夹中。

这些引导程序和jquery无法正常工作,我无法从中获得任何结果。 控制台出现404错误,即Bootstraps和jquery。这是怎么回事?

3 个答案:

答案 0 :(得分:1)

尝试从<!DOCTYPE>以外的所有标签中删除htmlheadbodyindex.ejs标签。您不需要它们,因为局部零件是在index.ejs内部渲染的,而这正是您的路线指向的地方。

答案 1 :(得分:1)

您可以使用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>

答案 2 :(得分:0)

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);