javascript
  • express
  • riot.js
  • pug
  • 2016-10-02 68 views 0 likes 
    0

    我試圖將riot.js標記包含到我的項目中,以便我可以重用組件。該應用程序在Node + 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

    標記文件在編譯帕格模板時不會被抓取,而是在應用程序運行時從瀏覽器中獲取。 目前您還沒有告訴Express在哪裏可以找到標籤文件。

    要解決此問題,可以例如創建一個文件夾public/tags,將標記文件移動到那裏並使用它們,如script(type="riot/tag" src="tags/kaljasakot.tag")。 Express會從那裏找到文件,因爲您已將public文件夾配置爲靜態文件的來源。

    現在請求不會再給404了,但標籤文件也不會有效。 由於您在標記文件中使用了Pug,因此您需要在應用程序可以使用它們之前對它們進行預編譯。如果您只是將kaljasakot.tag放到公共文件夾中,您會看到一個錯誤Uncaught SyntaxError: Unexpected token =,因爲Riot不理解帕格語法。

    因此,您可能只想將標記文件保存在views文件夾中,並設置構建步驟,在該步驟中編譯標記並將它們移動到public/tags文件夾。例如,參見Riot's documentation on server compilationgulp-riot

    +0

    我明白了,謝謝!在你的建議之前,我甚至沒有閱讀過預編譯的文檔,這很有效。 –

    相關問題