DigitalOcean Droplet - “无法获取 /”

时间:2021-02-25 21:05:23

标签: deployment get backend mern

问题(希望)很简单。我能够将我的 MERN 应用程序部署到 DigitalOcean 的应用程序平台并使其完整运行。问题是,App Platform 没有给我一个可以使用的静态 IP。所以我目前正在尝试部署到 DigitalOcean Droplet。设置很简单,一切都很顺利,直到我尝试访问我的应用程序并被“无法获取 /”消息(404 错误)打了一巴掌。这最初也发生在 App Platform 上,但是通过对我提供静态资产的方式进行了一些小的更改,问题得到了解决。使用 Droplet 时,我一生都无法弄清楚为什么我的路径不正确。我唯一的结论是,我误解了 Droplets 的设置方式与 App Platform 的设置方式的一些关键问题。

这是我为资产提供服务的代码:

if(process.env.NODE_ENV === 'production') {

    app.use(express.static('client/build'));

    app.get('*', (req, res) => {
        res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
    });
}

这是我的构建脚本:

"digitalocean-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"

我已经通过 ssh 仔细检查了 NODE_ENV 变量的状态,它正确地读取为“生产”。我还通过 ssh 运行了构建脚本并验证了我尝试提供的路径是否存在。除非对 DigitalOcean Droplets 有一些奇怪的秘密规则,否则我没有想法。我在这方面比较新,所以我很感激任何帮助。

0 个答案:

没有答案
相关问题