projectName
| - client/
| - css
| - js
| - index.html
| - bower_components/
| - package.json
| - server.js
我想启动我的应用并向节点提供index.html
。客户端是一个单页的AngularJs应用程序,所以在server.js
我检查了这个question,这个one这就是他们的建议:
var router = express();
var server = http.createServer(router);
function runServer() {
server.listen(PORT, () =>{
console.log(`Our app is running on port ${ PORT }`);
});
router.use(express.static(path.join(__dirname, 'client')));
router.use('/bower_components', express.static( path.join(__dirname, 'client/bower_components')))
router.get('*', function (req, res) {
res.sendfile('client/index.html');
});
}
在index.html的头部,我有:
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css"/>
<script src="/js/jquery.min.js"></script>
<script src="/js/highstock.js"></script>
<script src="/js/exporting.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/angular-animate/angular-animate.js"></script>
当我在本地主机上启动服务器时,该应用程序正常运行。但是我在我的主机上运行应用程序,我在浏览器控制台中收到以下错误。
> Uncaught SyntaxError: Unexpected token < angular-animate.js:1 Uncaught
> SyntaxError: Unexpected token < angular-route.js:1 Uncaught
> SyntaxError: Unexpected token < moment.js:1 Uncaught SyntaxError:
> Unexpected token < angular-sanitize.js:1 Uncaught SyntaxError:
> Unexpected token < frontend.js:6 Uncaught ReferenceError: angular is
> not defined
当我在angular.js
这样的新选项卡中打开bower_components文件夹内的源文件时,我发现该服务正在提供index.html文件而不是js文件。但是当我打开文件夹css或js中的资源文件时,例如highstock.js
,我得到了正确的资源文件。
如何从bower_components提供文件?