我花了几个小时试图找到这个问题的解决方案,但这相当困难。我已经阅读了上的安装说明和示例https://github.com/bminer/node-blade#simple-示例,但似乎无法加载客户端刀片模板。
以下是我所做的。
我有一个客户端模板位于我的公共静态服务器/views/template.blade.中
我已经提取了blade"runtime.js"文件,并将其包含在html主体底部的脚本标记中。
在我的main.js文件中,我试图简单地运行以下代码:
blade.Runtime.loadTemplate("template.blade", function(err, tmpl){
console.dir(err, tmpl);
});
我已经验证了它是否正确访问了template.blade文件,因为它位于可从Chrome开发工具查看的页面源中。此外,如果我将上面的参数更改为"templateXX.blade",我会得到一个404错误。
然而,我无法绕过错误:
Uncaught SyntaxError: Unexpected token default template.blade:1
在不同的测试排列中,我也收到了以下错误:
Resource interpreted as Script but transferred with MIME type application/octet-stream: "http://localhost:3005/views/template.blade".
根据节点刀片的说明,我无法理解是否缺少任何设置。
知道为什么用刀片吗。Runtime.loadTemplate在读取template.blade文件时引发此错误?这就像它试图将.blade文件作为javascript文件读取,但解析失败?
谢谢你提供任何线索。
你的预感是正确的;blade.Runtime.loadTemplate
正试图解析编译的刀片模板,但它得到的却是刀片源文件。
我相信您缺少的关键部分是必须通过blade中间件加载*.blade文件,而不是从静态文件服务器中间件加载。Blade中间件负责将Blade模板编译成JavaScript,将结果缓存在内存中,并将编译后的版本提供给客户端。
有关刀片中间件的更多信息,请查看此链接
如果您还有任何问题或问题,请回复。谢谢