Jade — скрипт не распознается

#javascript #jquery #node.js #express #pug

#javascript #jquery #node.js #выразить #pug

Вопрос:

У меня есть этот очень простой документ jade, и я хочу импортировать стандартный скрипт jQuery:

 extends layout

block content
    h1 #{title}

    ul#messages
    form#formAddUser(name="adduser",method="post",action="")
        input#m(type="text", name="message")
        button#btnSubmit(type="submit") submit

    script(src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js")
  

что является расширением

 doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')

  body
    block content
  

Дело в том, что скрипт даже не распознается! Я бы предпочел получить ответ 404, но даже этого не происходит, вообще ничего не происходит. Что я делаю не так?

Большое спасибо

P.S: я использую express.js

Код контроллера:

 router.get("/chat",function(req,res){
    res.render("chat",{title:"Chat"});
});
  

Обновить:
Я добавил фрагмент в макет

 doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(type="text/javascript")
      alert("hello!")
  body
    block content
  

это простое предупреждение, и оно тоже не работает!

Комментарии:

1. Ваше обновление — это совершенно другое дело. Для встроенных скриптов требуется точка после script .

2. Что вы ожидаете, что произойдет? Вы просто включаете jQuery, который ничего не делает, просто включая его.

3. Спасибо за подсказку по встроенному скрипту. К вашему второму комментарию, если я попытаюсь поместить это простое предупреждение в локальный скрипт и вызвать его, он просто отправит 404

4. Я думаю, что мне здесь не хватает некоторых основ. Разве включение jquery не должно успешно отправлять ответ 200?

5. «Разве включение jquery не должно успешно отправлять ответ 200?» Что должно отправить ответ 200 куда? Вы видите ошибку 404 при //ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js использовании Firebug или аналогичную?

Ответ №1:

Добавьте точку для буквального синтаксического анализа в jade. Ie.

 doctype html
html
    head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(type="text/javascript").
        alert("hello!")
        console.log('Notice the dot after the script tag.');
body
    block content
  

Если вы добавите точку, все, что находится внутри этого блока (с таким отступом), не будет проанализировано. Вот так:

 ul
    li This is inlined text.
    li.
       But this one is on its' own line, without the But being turned into a tag.
    li
       div this is a div inside a li
    li.
       div this is not a div, simple text inside a li.

p For added bonus, you can also use a colon and the next thing is also a tag.
p like, opposite of the dot.
p: a(href="#") Clickme!
p a(href="#") I'm not clickable :(
  

Jade — это круто, не так ли?

РЕДАКТИРОВАТЬ: Упс, только что заметил, что предупреждение («привет») — это просто приложение к вашему первоначальному вопросу. Позвольте мне обновить ответ.

РЕДАКТИРОВАТЬ 2: На самом деле, можете ли вы показать свой визуализированный HTML (для первого примера), чтобы я мог видеть, что на самом деле отображается и что вы ожидаете там увидеть?

Комментарии:

1. Я был использован fiddlesalad.com/jade чтобы проанализировать шаблон, используемый OP, возможно, он прослушивается