我刚刚继承了一个node.js项目,我怀疑某个节点项目所需的原始样板还没有完成。这也是我第一次使用node.js。
无论如何,当我运行节点app.js 时,正确的端口启动了所有内容,但应用程序无法加载许多脚本文件(错误“Uncaught SyntaxError:Unexpected token” <“在每个无法加载的js文件上给出。我试图解决这个错误,网上有很多资源,但是我还没能把它搞定。我尝试将type="text/javascript"
添加到每个script
标签中,但它没有改变任何内容。
当我单击以解决脚本的错误加载路径时,它们都会将我带到index.html页面。因此,出于某种原因,似乎 app.js 文件中的代码部分无效:
// serve all asset files from necessary directories
app.use('/js', express.static(__dirname + '/public/js'));
app.use('/css', express.static(__dirname + '/public/css'));
app.use('/partials', express.static(__dirname + '/public/partials'));
app.use('/lib', express.static(__dirname + '/public/lib'));
// JSON API
app.get('/api/name', api.name);
// redirect all others to the index (HTML5 history)
app.all('/*', function(req, res, next) {
res.sendfile('index.html', { root: __dirname + '/public' });
});
但是,它看起来应该正常工作(遵循文件的路径)。有什么想法吗?
答案 0 :(得分:1)
几乎可以肯定,app.all
路由正在为应该发送javascript的请求发回HTML。您需要查看浏览器作为脚本标记获取的特定URL,但服务器正在发回HTML。相应的.js
文件可能不在public/js
下,导致路由器继续进行全能路由。
请注意,由于您的网址与文件系统结构的对齐,您可以将express.static
路由压缩为此。
// serve all asset files from necessary directories
app.use(express.static(__dirname + '/public'));