在 Heroku 上构建 Angular 4 应用程序时,不包括资产
While building Angular 4 app on Heroku, assets are not included
我在服务器端使用 Node + Express 创建了一个 Web 应用程序,在客户端使用 Angular 4。
我可以使用 angular-cli (ng build --aot -prod) 在本地构建这个应用程序并且一切正常:dist 文件夹是使用所有 css/jss 包创建,index.html、favicon.ico 和 资产文件夹被复制到此 dist 文件夹中。
现在,我正在尝试使用 git 推送在 Heroku 上托管此应用程序,并在 package.json 上使用 NPM 安装后脚本直接在 Heroku 上构建它:
...
"scripts": {
...
"postinstall": "ng build --aot -prod"
},
...
似乎一切正常,构建过程成功,但问题是 资产文件夹未复制到 dist 文件夹中,因此没有可用资产到我的应用程序(这意味着我的应用程序上没有图像 served/shown)。
我正在使用的文件夹结构:
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
经过一段时间的挣扎,我终于解决了这个问题,所以我把它贴在这里,希望对大家有所帮助。
这是一个愚蠢的错误,花了很长时间才弄清楚。
问题是自开发开始以来,我已经从我的主要 git 存储库(使用 .gitignore 文件)中删除了图像,因为我经常进出资产,不想在 git.
上跟踪它们
这样,当使用 git 将文件推送到 heroku 时,这些文件不会被复制,因为它们没有包含在 repo 中。虽然那里有一个资产文件夹,但它是空的。
所以,我刚刚将图像包含在存储库中(从 .gitignore 中删除了规则),现在一切正常。
我在服务器端使用 Node + Express 创建了一个 Web 应用程序,在客户端使用 Angular 4。
我可以使用 angular-cli (ng build --aot -prod) 在本地构建这个应用程序并且一切正常:dist 文件夹是使用所有 css/jss 包创建,index.html、favicon.ico 和 资产文件夹被复制到此 dist 文件夹中。
现在,我正在尝试使用 git 推送在 Heroku 上托管此应用程序,并在 package.json 上使用 NPM 安装后脚本直接在 Heroku 上构建它:
...
"scripts": {
...
"postinstall": "ng build --aot -prod"
},
...
似乎一切正常,构建过程成功,但问题是 资产文件夹未复制到 dist 文件夹中,因此没有可用资产到我的应用程序(这意味着我的应用程序上没有图像 served/shown)。
我正在使用的文件夹结构:
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
经过一段时间的挣扎,我终于解决了这个问题,所以我把它贴在这里,希望对大家有所帮助。
这是一个愚蠢的错误,花了很长时间才弄清楚。
问题是自开发开始以来,我已经从我的主要 git 存储库(使用 .gitignore 文件)中删除了图像,因为我经常进出资产,不想在 git.
上跟踪它们这样,当使用 git 将文件推送到 heroku 时,这些文件不会被复制,因为它们没有包含在 repo 中。虽然那里有一个资产文件夹,但它是空的。
所以,我刚刚将图像包含在存储库中(从 .gitignore 中删除了规则),现在一切正常。