我在服务器端使用Node + Express和客户端使用Angular 4创建了一个Web应用程序。
我能够使用angular-cli( ng build --aot -prod )在本地构建此应用程序并且一切正常:使用所有css / jss创建dist文件夹bundles,index.html,favicon.ico和 assets文件夹被复制到此dist文件夹。
现在,我尝试使用git push在Heroku上托管这个应用程序,并使用package.json上的NPM postinstall脚本直接在Heroku上构建它:
...
"scripts": {
...
"postinstall": "ng build --aot -prod"
},
...
一切似乎都运行良好,构建过程成功,但问题是资产文件夹未复制到dist文件夹,因此我的应用程序没有可用的资源(表示我的应用程序没有提供/显示图像。
文件夹结构我使用:
node_modules
server
dist // created on build process
src
-- app
-- assets
-- favicon.ico
-- index.html
-- styles.css
server.js
.angular-cli.json
package.json
package-lock.json
答案 0 :(得分:0)
经过一段时间的挣扎,我终于解决了这个问题,所以我在这里张贴它以便它可以帮助别人。
这是一个愚蠢的错误,需要很长时间才能搞清楚。
问题在于,自开发开始以来,我已从我的主git repo中删除了图像(使用.gitignore文件),因为我进出大量资产并且不想跟踪他们在git上。
这样,当使用git将文件推送到heroku时,这些文件没有被复制,因为它们没有包含在repo中。虽然那里有一个资产文件夹,但它是空的。
所以,我刚刚将这些图片包含在repo中(从.gitignore删除了规则),现在一切正常。