Node.js 静态资产不在Heroku上运行,但在本地运行?
我有一个基于nodeJS+expressJS+angular2rc.5的网站,它在我本地的windows10机器上运行良好。但是,当我尝试将(日志)部署到Heroku并访问该站点时,前端控制台(Chrome)抛出以下错误,该站点无法加载。似乎RXjs没有在Heroku上提供存在一些问题 zone.js:101 GET 404(未找到) 我的报告包括:Node.js 静态资产不在Heroku上运行,但在本地运行?,node.js,express,heroku,angular,rxjs,Node.js,Express,Heroku,Angular,Rxjs,我有一个基于nodeJS+expressJS+angular2rc.5的网站,它在我本地的windows10机器上运行良好。但是,当我尝试将(日志)部署到Heroku并访问该站点时,前端控制台(Chrome)抛出以下错误,该站点无法加载。似乎RXjs没有在Heroku上提供存在一些问题 zone.js:101 GET 404(未找到) 我的报告包括: (function(global) { // map tells the System loader where to look for t
(function(global) {
// map tells the System loader where to look for things
var map = {
'app': '/app', // 'dist',
'@angular': '/node_modules/@angular',
'angular2-in-memory-web-api': '/node_modules/angular2-in-memory-web-api',
'rxjs': '/node_modules/rxjs'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
};
System.config(config);
})(this);
我的报告包括:
...
<script src="/node_modules/core-js/client/shim.min.js"></script>
<script src="/node_modules/zone.js/dist/zone.js"></script>
<script src="/node_modules/reflect-metadata/Reflect.js"></script>
<script src="/node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="/config/systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
<base href="/">
</head>
。。。
System.import('app').catch(函数(err){console.error(err);});
因此,如果我在本地运行项目,http://localhost:3000/node_modules/rxjs/RX.js
显示js源代码。
但是,如果我使用构建日志将项目推送到Heroku,该版本将在/node\u modules/rxjs/RX.js
更新:
如果我将repo克隆到计算机上的一个新位置,将cd复制到项目根目录,运行
npmi
,然后git子模块更新--init“然后
node./bin/www`然后项目在本地主机上运行良好。我认为这意味着回购协议中的所有信息都足以使项目发挥作用。因此,我仍然怀疑这与Heroku与我的本地计算机上提供静态访问的方式有关。服务器可能基于linux,并且文件/文件夹名称区分大小写。它是Rx.js
而不是Rx.js
。所以你在某个地方导入了一个错误的import
我没有在应用程序的任何地方导入rxjs,它只是angularOh的子依赖项。。然后。。但是有些事情确实发生了:D,因为尝试转到/node\u modules/rxjs/Rx.js
,它会正常工作,你是对的!我会尽力追查的。。。有什么想法吗?不知道为什么会发生这种情况,因为我的config.system.js
中明确指定了正确的大小写。搜索项目(尤其是节点模块文件夹)中的RX:)确保检查区分大小写