在Heroku上构建Angular 4应用程序时,不包括资产

时间:2017-11-24 20:08:36

标签: node.js angular heroku angular-cli heroku-cli

我在服务器端使用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

1 个答案:

答案 0 :(得分:0)

经过一段时间的挣扎,我终于解决了这个问题,所以我在这里张贴它以便它可以帮助别人。

这是一个愚蠢的错误,需要很长时间才能搞清楚。

问题在于,自开发开始以来,我已从我的主git repo中删除了图像(使用.gitignore文件),因为我进出大量资产并且不想跟踪他们在git上。

这样,当使用git将文件推送到heroku时,这些文件没有被复制,因为它们没有包含在repo中。虽然那里有一个资产文件夹,但它是空的。

所以,我刚刚将这些图片包含在repo中(从.gitignore删除了规则),现在一切正常。