簡體   English   中英

流星並不提供目錄中的所有HTML文件

[英]Meteor doesn't serve all HTML files in a directory

在瀏覽Meteor TODO應用程序教程時,我在第10步發布和訂閱時遇到了問題。

問題在於, imports / ui / task.js中的此代碼不再起作用:

import { Meteor } from 'meteor/meteor'
import { Template } from 'meteor/templating';

import './task.html'; // <= fails in the browser

imports / ui目錄包含:

body.html   body.js     task.html   task.js

我可以import './body.html'; 很好,但不能import './task.html'; ,或與此相關的任何其他HTML文件-例如,我嘗試將task.html重命名為flask.html並進行相應的導入,但仍然失敗。

嘗試在Chrome中進行調試時,我發現它看到了一組不同的文件:

Chrome調試快照

看着這個問題,我能夠找到生成的app.js ,它具有

Template.body.addContent((function() {

但沒有(預期?)

Template.task.addContent

所以我的問題是,為什么Meteor構建沒有選擇task.html

注意:我剛剛將Meteor更新到1.8.0.2。 那可能是該版本中的新錯誤嗎?

UPDATE

我使用相同的教程從頭開始,並順利完成了第10步。

然后,我對兩個項目進行了比較。 到目前為止,我無法找到這個問題的根本原因,但原因是可見

.meteor /本地/編譯/程序/ web.browser /應用/ app.js

如所附的差異顯示: 新舊對比

原始文件(右側)缺少task.html生成的部分

問題仍然是為什么? 我可以查看任何編譯日志嗎?

好的,@ victor和@ fred-stark的錢是對的。 這是Blaze模板中的語法錯誤!

<template name="task">
  <li class="{{#if checked}}checked{{/if}} {{#if private}}private{{/if}}">
    <button class="delete">&times;</button>

    <input type="checkbox" checked="{{checked}}" class="toggle-checked" />

    {{#if isOwner}}
      <button class="toggle-private">
        {{#if private}}
          Private
        {{#else}} // <= should be {{else}} !
          Public
        {{/if}}
      </button>
    {{/if}}
    <span class="text"><strong>{{username}}</strong> - {{text}}</span>
  </li>
</template>

我通常會在編寫教程時嘗試自己鍵入所有內容,而不是復制粘貼。 所以,在這里我輸錯,subconsiously承擔語法else將是一樣的if 錯誤!

如果在構建過程中編譯器發出了一些指示,還是很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM