Javascript没有渲染玉

我无法从jade内部调用我的script.js文件,但如果插入内联,JavaScript呈现完美。 这是我第一次尝试,所以js文件只是一个警告:

alert("javascript works"); 

我倾向于认为我不恰当地称这个剧本。 目前layout.jade看起来像:

 doctype 5 html head title= "LeafPress - Hot off the Presses" link(rel='stylesheet', href='/stylesheets/style.css') block scripts script(type='text/javascript', src='/javascripts/script.js') body block content 

我已经尝试了一些脚本path的排列(../public/javascripts/script.js; /public/javascripts/script.js; public / javascripts / script.js; javascripts / script.js; script.js ),以及尝试将脚本直接放在根目录和“视图”目录中。

app.js:

 /** * Module dependencies. */ var express = require('express') , routes = require('./routes/index') , user = require('./routes/user') , http = require('http') , path = require('path'); var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); app.get('/', routes.index); app.get('/permalink', routes.permalink); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 

index.js:

 /* * GET home page. */ exports.index = function(req, res){ res.render('index', { title: 'Express' }); }; exports.permalink = function(req, res) { res.render('permalink', { title: 'Comments page' }); }; 

我的相关文件层次结构如下所示

 - public - javascripts - script.js - views - index.jade - layout.jade - routes - index.js app.js 

这似乎是相关的,但没有解决问题: 静态JavaScript不呈现在玉(与express / node.js)

尝试完全删除这条线app.use(app.router); 。 手动更改快速中间件堆栈中路由器的位置通常会产生不希望的行为。 不要这样做,除非你真的确定你确切地知道你为什么这样做,以及你期望发生什么。 为臭名昭着的快递logging器的输出cannot GET /javascripts/script.js ,这将直接指向中间件/路由configuration错误。

我猜你的markdown语法是你的问题只是破坏,但要确保script.js文件是在javascripts目录中,而不是它的兄弟姐妹。