Meteor 不提供目录中的所有 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 中调试它,我发现它看到了一组不同的文件:
查看 我能够找到生成的 app.js,其中有
Template.body.addContent((function() {
但没有(预期?)
Template.task.addContent
所以我的问题是为什么 Meteor build 没有启动 task.html?
注意:我刚刚将 Meteor 更新到 1.8.0.2。这可能是该版本中的新错误吗?
更新
我使用相同的教程从头开始,并且顺利完成了第 10 步。
然后我 运行 对这两个项目进行了比较。到目前为止,我无法找到此问题的 root 原因,但是 a 原因在
中可见
.meteor/local/build/programs/web.browser/app/app.js
如所附差异所示:
原件(右侧)缺少从 task.html
生成的部分
问题还是为什么?有编译日志可以看吗?
好吧,@victor 和@fred-stark 是对的。这是 Blaze 模板中的语法错误!
<template name="task">
<li class="{{#if checked}}checked{{/if}} {{#if private}}private{{/if}}">
<button class="delete">×</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>
我通常在编写教程时尝试自己全部输入,而不是复制粘贴。所以,我在这里打错了,下意识地假设 else
的语法与 if
的语法相同。错了!
如果编译器在构建过程中有一些指示,那就太好了。
在完成 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 中调试它,我发现它看到了一组不同的文件:
查看
Template.body.addContent((function() {
但没有(预期?)
Template.task.addContent
所以我的问题是为什么 Meteor build 没有启动 task.html?
注意:我刚刚将 Meteor 更新到 1.8.0.2。这可能是该版本中的新错误吗?
更新
我使用相同的教程从头开始,并且顺利完成了第 10 步。
然后我 运行 对这两个项目进行了比较。到目前为止,我无法找到此问题的 root 原因,但是 a 原因在
中可见.meteor/local/build/programs/web.browser/app/app.js
如所附差异所示:
原件(右侧)缺少从 task.html
生成的部分问题还是为什么?有编译日志可以看吗?
好吧,@victor 和@fred-stark 是对的。这是 Blaze 模板中的语法错误!
<template name="task">
<li class="{{#if checked}}checked{{/if}} {{#if private}}private{{/if}}">
<button class="delete">×</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>
我通常在编写教程时尝试自己全部输入,而不是复制粘贴。所以,我在这里打错了,下意识地假设 else
的语法与 if
的语法相同。错了!
如果编译器在构建过程中有一些指示,那就太好了。