2016-10-02 4 views
0

Я пытаюсь включить теги riot.js в свой проект, чтобы я мог повторно использовать компоненты. Приложение работает на узле + Express и использует Pug для шаблонов.Riot.js компилятор/404 тег не найден

У меня есть маршрут, который отображает следующую страницу:

include includes/header.pug 
link(rel="stylesheet" href="/styles/kaljasakot.css" type="text/css") 
body(id='bootstrap-override') 
    div(class='container-fluid') 
     div(class='header') 
      img(class='okklogo' src='img/okkimg.jpeg' height='80' width='130') 
      h1 Kaljasakot 
    kaljasakot 
    script(type="riot/tag" src="kaljasakot.tag") 
    script(src="https://cdn.jsdelivr.net/riot/2.6/riot+compiler.min.js") 
    script riot.mount('kaljasakot') 
    include includes/footer.pug 
    script(src='/js/kaljasakot.js') 

И.Э. Я пытаюсь установить трюк kaljasakot в шаблоне Мопса. Однако браузер дает 404 ошибки в консоли на странице визуализации:

GET http://localhost:3001/kaljasakot.tag 404 (не найден) бунт + compiler.min.js: 2

Я немного тупик на где файл тега должен быть расположен для компилятора, чтобы найти его, и я не могу найти никаких советов по этому вопросу от Google. Кто-нибудь сталкивался с этим делом?

Весь проект можно найти здесь Github link, если необходимо.

ответ

1

Файлы тегов не извлекаются, когда шаблон Pug скомпилирован, но из браузера, когда приложение запущено. В настоящее время вы не сказали Express, где найти файлы тегов.

Чтобы устранить эту проблему, вы можете, например, создать папку public/tags, переместить туда файлы тегов и использовать их как script(type="riot/tag" src="tags/kaljasakot.tag"). Express найдет файлы там, потому что вы создали папку public в качестве источника для статических файлов.

Теперь запрос больше не даст 404, но файл тега тоже не будет работать. Поскольку вы используете Pug в файлах тегов, вам необходимо предварительно скомпилировать их, прежде чем приложение сможет их использовать. Если вы просто отпустите файл kaljasakot.tag в общую папку, как было предложено выше, вы увидите сообщение об ошибке Uncaught SyntaxError: Unexpected token =, потому что Riot не понимает синтаксис Pug.

Так что вы, вероятно, захотите просто сохранить файлы тегов в папке views и настроить шаг сборки, где вы скомпилируете теги и переместите их в папку public/tags. См., Например, Riot's documentation on server compilation и gulp-riot.

+0

Вижу, спасибо! Я даже не читал документы до компиляции до вашего совета, это сработало. –