包含JavaScript文件的Jade最佳实践?

时间:2013-11-20 04:07:22

标签: javascript express pug

我有一个特定于页面的JavaScript代码,可以加载该页面。问题是,它取决于jQuery。我按照建议将script(src='/js/lib/jquery.js')放在 body 的末尾。

使用这种方法,我得到Can't find variable: $,因为我试图在加载jQuery之前执行依赖于jQuery的特定于页面的JavaScript。

有没有办法在不将script(src='/js/lib/jquery.js')移到 head 部分的情况下完成这项工作?

我甚至试过这样做,但我仍然得到Can't find variable: $

// layout.jade
script(src='/js/lib/jquery.js')
block scripts

// login.jade
block scripts
  script(type='text/javascript')
    $('form').validate();

修改 TJ Hollowaychuck 在此处发布了类似问题的链接,但这些网址已不再有效:Best practices for JavaScript in Jade templates

2 个答案:

答案 0 :(得分:1)

以下是TJ指向的更新网址:

https://github.com/visionmedia/express/blob/master/examples/jade/views/users/index.jade https://github.com/visionmedia/express/blob/master/examples/jade/index.js#L34

但是,我相信你真正的问题是客户端,而不是服务器,你想在其中包装你的jQuery:

$(document).ready(function() {
    // put all your jQuery goodness in here.
});

答案 1 :(得分:0)

这是我的layout.jade

的一部分
doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    block content
    include scripts
    block scripts

我包含一个scripts.jade,其中包含我的常用脚本(如jQuery和配置位),然后是单个页面内定义的所有脚本,只需一个简单的

block scripts
  script.
    alert("Hello!");