【发布时间】:2022-12-10 22:35:33
【问题描述】:
我有一个带有 ejs 模板引擎的 ExpressJS 服务器在网页中运行一个 Blockly 应用程序和一个 threejs 映射。我的问题是,当我转到 /applications/newApp 时,app.ejs 运行良好,但是当我转到 /applications/:slug(这是加载已保存应用程序的请求)时,app.ejs 崩溃并出现以下错误:
Uncaught SyntaxError: Unexpected token '<' (at file.js:1:1)
Uncaught SyntaxError: Unexpected token '<' (at anotherFile.js:1:1)
这是我的 ejs 代码:
<p hidden id="pageName">
<% if(page_name=="savedApp" ) { %>
savedApp
<% } else { %>
newApp
<% } %>
</p>
<p hidden id="slug">
<% if(page_name=="savedApp" ) { %>
<%= slug %>
<% } else { %>
none
<% } %>
</p>
这些都调用了相同的文件,但一个运行良好而另一个崩溃。这些也是服务器响应的方式;
exports.getNewApp = (req, res) => {
res.render('app', {
page_name: 'newApp',
});
};
exports.loadApplication = async (req, res) => {
try {
res.render('a', {
page_name: 'savedApp',
slug: req.params.slug,
});
} catch (err) {
console.log(err);
res.status(500);
}
};
我试过什么:
- 我查看了打开的<% %>标签,这里没有报错
- 我正在使用这样的公共文件:
app.use(express.static(path.join(__dirname + 'public')));
app.use('/applications', express.static(path.join(__dirname + 'public/blocklyApplication')));
我还检查了以下问题:
Express.js, Node.js, EJS - Uncaught SyntaxError: Unexpected token <
SyntaxError: Unexpected token ; while compiling ejs
SyntaxError: Unexpected token ,while compiling ejs
我不明白,它们都是具有通用 url 的同一页面的响应,一个效果很好,另一个效果不好。我应该检查什么?
【问题讨论】: