EJS和jQuery不加载JavaScript参考
这让我疯狂。
我有一个快递节点的应用程序。 它提供了一个名为index.ejs的文件。
我想要做的就是在这个页面上导入一个JavaScript文件(类似于jquery)。 但它不会拉起来,我疯了(因为这应该是简单的)。
在服务器端,我有一个名为app.js的文件中的这段代码:
var express = require('express'); var app = express.createServer(); var hostName = (process.env.VCAP_APP_HOST || 'localhost'); app.listen( process.env.VCAP_APP_PORT || 8000); app.use(express.static(__dirname + '/public/javascript/')); //Create the view app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.set('view options', { layout: false }); app.get('/', function(req, res){ res.render('index.ejs', { item : "document.write('Hello World');" }); });
在ejs文件中,我有这样的:
<html> <script> <%= item %> </script> <a href="">Link</a> <script type="text/javascript" src="/javascript/jquery.js"></script> </html>
我可以在控制台中看到脚本未加载(显示错误)。 但是对于我的生活,我无法弄清楚为什么。
您需要添加一个静态服务器来为“/”下的其他文件提供服务。 目前你的服务器只是响应发送到“/”(和视图)的请求。
在app.get
之前将此行添加到您的快速设置:
// DOCUMENT_ROOT should point to the directory that contains your javascript directory. app.use(express.static(DOCUMENT_ROOT));
当你的客户端要求/javascript/jquery.js
,你的服务器将会寻找/public/javascript/javascript/jquery.js
,我相当怀疑它会find它。 假设jquery.js
实际上位于your_app/public/javascript
,将express.static()
的path名设置为__dirname + '/public'
应该可行。
- Node.js和Express应用程序中的res.render()和ejs.render()有什么区别
- 根据密钥名称更新JSON文件值
- AngularJS的$ routeProvider templateUrl总是使用Express返回404
- 有没有办法将ejs文件的文件扩展名保存为.html?
- Expressjs ejs fn.apply错误“视图不是一个构造函数”
- 如何将数据从服务器发送回浏览器?
- EJSdynamic包括
- Node.js:使用下划线和ejs一起呈现html
- Node.JS – 简单的Socket.IO示例不起作用。 获取debugging服务的静态内容/socket.io.js(Mac OSX / Localhost)