使jquery在expressjs应用程序中工作

时间:2016-01-07 18:58:22

标签: express

这是一个愚蠢的问题。 我正在写一个expressjs应用程序。我无法让jquery或bootstrap工作。

// app.js

app.use(express.static(__dirname + '/public'));

也试过

app.use(__dirname + '/public');
or
app.use(path.join(__dirname + '/public'))
or
app.set(__dirname + '/public');
or
app.set(path.join(__dirname + '/public'))

// views / home.html

<head>
    <script src="/js/jquery.min.js"></script>
</head>
<body>
<script>
    $(function(){
     alert('hello');
    });
</script>
</body>

//公共&GT; JS&GT; jquery.min.js

它不起作用。我正在使用快递4.

除了jquery

之外,模板工作正常

我需要在编写此应用程序时脱机工作,因此无法使用CDN

目录结构

    app.js
    views
    --layouts
    --partials
    public
    --js
    ----jquery.min.js

使用'hbs'包,用于模板的把手

由于

1 个答案:

答案 0 :(得分:0)

在我看来,您不应该使用当前的设置来查看视图。当您说app.use(express.static(__dirname + '/public'));时,您说当您点击http://{hostname}:{portNumber}时,您将从/public文件夹中获得内容。您不应该能够访问文件系统上不属于/public文件夹的任何资源。因此,如果你设置了一个文件夹结构,例如:

app.js
--public
----views
------layouts
------partials
------home.html
----js
------jquery.min.js

我认为可行(假设您的view.html仍然正确指向文件夹结构中的jquery.js)。