如何写一个now.json文件完美部署

How to write a now.json file for a perfect deployment

我使用以下教程 https://www.sitepoint.com/webrtc-video-chat-application-simplewebrtc/ 和文件结构开发了一个视频聊天应用程序:

simplewebrtc-messenger
├── public
│   ├── images
│   │   └── image.png
│   ├── index.html
│   └── js
│       └── app.js
├── README.md
├── now.json
└── server.js

我正在尝试使用 now.sh 来部署我的应用程序,我为此编写了以下 now.json 文件

{
    "version": 2,
    "name": "VideoChat",
    "builds": [
        { "src": "/server.js", "use": "@now/node-server"},
        { "src": "/public/index.html", "use": "@now/static"},
        { "src": "/public/js/app.js", "use": "@now/node"},
        { "src": "/public/images/*.png", "use": "@now/static"}
    ]
}

但我在部署后得到了应用程序的文件夹视图。

我希望 index.html 文件在部署后显示为具有所有功能的默认页面。

正如 josh 提到的,您可以使用 routes 将特定路径路由到您的输出 Lambda 或静态文件。

{
    "version": 2,
    "builds": [
        { "src": "/server.js", "use": "@now/node"},
        { "src": "/public/index.html", "use": "@now/static"},
        { "src": "/public/js/app.js", "use": "@now/static"},
        { "src": "/public/images/*.png", "use": "@now/static"}
    ],
    "routes": [
        { "src": "/", "dest": "/public/index.html" },
        { "src": "/js/(.*)", "dest": "/public/js/" },
        { "src": "/images/(.*)", "dest": "/public/images/" },
        { "src": "/api", "dest": "/server.js" }
    ]
}

或者,您可以使用静态构建器将整个 public 目录复制到输出。

{
    "version": 2,
    "builds": [
        { "src": "/server.js", "use": "@now/node"},
        { "src": "/public/**", "use": "@now/static"}
    ],
    "routes": [
        { "src": "/", "dest": "/public/index.html" },
        { "src": "/(.+js|.+css|.+png|.+ico|robots.txt)", "dest": "/public/" },
        { "src": "/api", "dest": "/server.js" }
    ]
}