Javascript 将脚本src传递到Pug模板中
我正在尝试让我的帕格模板使用Express渲染脚本。我的文件结构如下:Javascript 将脚本src传递到Pug模板中,javascript,express,pug,Javascript,Express,Pug,我正在尝试让我的帕格模板使用Express渲染脚本。我的文件结构如下: views public index.jade main.js index.js <!DOCTYPE html><html><head><title>SSR React</title></head><body><div id="root"></div><script s
views
public
index.jade
main.js
index.js
<!DOCTYPE html><html><head><title>SSR React</title></head><body><div id="root"></div><script src="/main.js"></script></body></html>
我尝试将脚本的名称作为参数传递给res.render('public/index',{bundle:'/main.js'})
,但没有成功
myindex.js的内容
:
const-app=express();
应用程序集(“查看引擎”、“翡翠”);
app.use(express.static(path.join(uu dirname,'views/public'));
应用程序使用(“*”,(请求、恢复、下一步)=>{
res.render('public/index',{bundle:'/main.js'});
});
myindex.jade的内容
:
doctype html
html
head
title SSR React
body
div#root
script(src='#{bundle}')
我在控制台里发现一个奇怪的错误。脚本的名称正在通过,但我得到了错误
未捕获的语法错误:在Jade模板中编写内联JavaScript时,需要在script标记后添加一个点。您还应该缩进代码 例如,包括外部js,如:
script(type='text/javascript', src='/socket.io/socket.io.js')
内联js类似:
script(type='text/javascript').
我不知道杰德,但你的快递系统很好。从呈现的HTML可以看出,Express正在将正确的值传递到模板中,即“/main.js”。由于您在devtools中的“sources”下看到了bundle文件,所以您也知道它正在被提供。您看到的错误几乎肯定是传输/捆绑的React代码的问题。请参阅ReactJS:意外令牌'