将斯巴达克斯部署到 Heroku
Deploy Spartacus to Heroku
我一直在尝试将我的 SAP Spartacus 应用程序部署到 Heroku。
在我的 package.json 的脚本部分我添加了 "start": "node server.ts",
这是我正在使用的server.ts:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname + '/src/spartacus-mystore'));
app.get('/*', function (req,res){
res.sendFile(path.join(__dirname+
'/src/spartacus-mystore/index.html'));});
app.listen(process.env.PORT || 8080);
我还是不知道,但是这个文件有问题。在 Heroku 的控制台中,我看到一切正确,应用程序已成功部署,但是当我到达它时,我只看到一个空白页面。
HTML 回来了吗?或者什么都没有。
我看到你在你的 src/ 目录上 运行 express,你为什么不在你的 heroku 实例上构建然后静态地提供 dist/ 目录?
可能是您的后端未批准来自 Heroku URL 的请求,因此 Spartacus 未收到任何数据。 CORS 问题在这里很常见 ;-)
我按照以下步骤解决了这个问题:
我在 package.json 的脚本部分添加了 "heroku-postbuild": "ng build --prod"
。
我将 @angular/compiler、@angular/compiler-cli、@angular-devkit/build-angular 和 @angular-devkit/schematics 从 devDependencies 复制到 dependencies
我根据 Erik 的评论更改我的 serve.ts
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname + '/dist/mystore/browser'));
app.get('/*', 函数 (req,res){
res.sendFile(path.join(__dirname+ '/dist/mystore/browser/index.html'));});
app.listen(process.env.PORT || 8080);
现在可以使用了https://spartacus-mystore.herokuapp.com/electronics-spa/en/USD/
我一直在尝试将我的 SAP Spartacus 应用程序部署到 Heroku。
在我的 package.json 的脚本部分我添加了 "start": "node server.ts",
这是我正在使用的server.ts:
const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname + '/src/spartacus-mystore'));
app.get('/*', function (req,res){
res.sendFile(path.join(__dirname+
'/src/spartacus-mystore/index.html'));});
app.listen(process.env.PORT || 8080);
我还是不知道,但是这个文件有问题。在 Heroku 的控制台中,我看到一切正确,应用程序已成功部署,但是当我到达它时,我只看到一个空白页面。
HTML 回来了吗?或者什么都没有。
我看到你在你的 src/ 目录上 运行 express,你为什么不在你的 heroku 实例上构建然后静态地提供 dist/ 目录?
可能是您的后端未批准来自 Heroku URL 的请求,因此 Spartacus 未收到任何数据。 CORS 问题在这里很常见 ;-)
我按照以下步骤解决了这个问题:
我在 package.json 的脚本部分添加了
"heroku-postbuild": "ng build --prod"
。我将 @angular/compiler、@angular/compiler-cli、@angular-devkit/build-angular 和 @angular-devkit/schematics 从 devDependencies 复制到 dependencies
我根据 Erik 的评论更改我的 serve.ts
const express = require('express'); const path = require('path'); const app = express(); app.use(express.static(__dirname + '/dist/mystore/browser')); app.get('/*', 函数 (req,res){ res.sendFile(path.join(__dirname+ '/dist/mystore/browser/index.html'));}); app.listen(process.env.PORT || 8080);
现在可以使用了https://spartacus-mystore.herokuapp.com/electronics-spa/en/USD/