这是一个愚蠢的问题。 我正在写一个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'包,用于模板的把手
由于
答案 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)。