Sweetalert2 в нефрите

Я новичок в javascript / jade. Я пытаюсь создать простой пример, используя sweetalert2 из файла шаблона нефрита. Когда я запускаю следующее, я получаю предупреждение «Помогите мне», но когда дохожу до строки swal, я получаю:

ReferenceError: swal не определен

html  
  head
    title= title
    style.
      body {
        font-family: verdanna;
        font-size: 19px;
        background: #aaaaaa;
      }
    link(type='text/css' rel='stylesheet' href='file:///home/dave/css/sweetalert2.css')
  body
    script(src='file:///home/dave/js/sweetalert2.min.js')
    script.
      var func=function() {
        alert('Help me');
        swal('swal help');
    block content
      h2 Hello
      button(onclick='func()') Alert
  footer
    .row
      .col-xs-12
        small © Neo Inc 2017

Следует отметить, что я запускаю это из игрушечного приложения на основе express / node.js. Я проверил, что файлы sweetalert2.css и sweetalert2.min.js существуют, скопировав местоположения из кода и вставив их в другую вкладку в браузере. Любые предложения / помощь будут оценены.


person Dave Anderson    schedule 30.08.2017    source источник


Ответы (1)


Проблема в том, что вы не можете включать файлы с абсолютной file:///... ссылкой в ​​современных браузерах с сайтов, обслуживаемых по протоколу HTTP (source). Вам необходимо указать относительный путь, например src='../myPage.js'. Этот путь должен быть относительно каталога, в котором находится файл HTML / Pug.

person gandreadis    schedule 31.08.2017
comment
Я изменил строку сценария следующим образом: ‹pre› script (src = '.. / js / sweetalert2.min.js') ‹/pre› И в выводе консоли firebug я получаю: Ошибка сети: 404 Not Found - localhost: 3017 / js / sweetalert2.min.js Мое приложение работает на порту 3017 - person Dave Anderson; 01.09.2017
comment
Вам также необходимо обслуживать эту js папку (довольно просто в Node express) . Проблема в том, что вы смешиваете и сопоставляете файлы, обслуживаемые вашей файловой системой, и файлы, обслуживаемые вашим сервером Node.js - они должны обслуживаться только одним из этих двух - person gandreadis; 01.09.2017
comment
Вот и все! Я ценю ответ и ссылки ... спасибо! - person Dave Anderson; 01.09.2017