node.js - 将 Angular 6 Universal 部署到 GCP App Engine
问题描述
我正在寻找一个使用 Angular 6 Universal 并成功部署到 GCP App Engine 的示例项目。我搜索了 GitHub,但找不到示例 - Universal Starter 不包括部署。此外,我的旧 Angular 5 Universal 配置不适用于这个新的 V6 项目。
当前错误来自 nginx:“502 Bad Gateway” 这似乎是导致问题的 favicon.ico 文件 - 看起来像 Node.js 问题。我刚刚在一个纯 Node.js 项目(不是 Angular)上处理了这个问题并且能够解决它,但是我在 Angular 上下文中找不到正确的配置。
服务器.ts
app.use(favicon('src/favicon.ico'));
angular.json(开始)
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"appname": {
"root": "",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/browser",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
{
"glob": "favicon.ico",
"input": "src",
"output": "/"
},
{
"glob": "**/*",
"input": "src/assets",
"output": "/assets"
}
],
"styles": [
{
"input": "node_modules/@angular/material/prebuilt-themes/indigo-pink.css"
},
"src/styles.css"
], ...
dispatch.yaml(因为我有多个服务使用同一个域)
dispatch:
# Default service serves the typical web resources and all static resources.
- url: "*/favicon.ico"
service: default
解决方案
问题是在 package.json 中没有正确启动 Node。脚本中的这一行解决了问题...
"scripts": {
...
"start": "node dist/server.js",
推荐阅读
- vue.js - vuetify中的“透明” v-text-field?
- csv - 编写 CSV 文件 - 是否用空格填充列?
- django - 如何将 Django Uploadfile.InMemory 转换为 numpy 数组或图像
- apache-kafka - 如何使用 Apache Kafka Streams 找到最后一个跳跃窗口
- sql - 如何使用在 postgres 中创建期间设置的默认值更新列?
- jupyter-notebook - 从 miniforge 安装后,某些模块无法在 jupyter notebook 上导入
- sql - 创建新列并填充条件格式数据
- kotlin - 如何使用 Android 两种方式绑定在 EditText 中设置正则表达式?
- python - 在 Selenium/chromedriver 上几次刷新后显示 reCAPTCHA
- javascript - 如何在 Laravel Mix 中使用全局 JS 变量?