使用 minikube 部署多页 Web 应用程序

Deployment of multi-page web app with minikube

下午好,

我正在尝试使用 minikube 来部署多页面 nodejs-mongoDB 网络应用程序。我已经创建了我的应用程序,我已经对它进行了 docker 化,现在我正在尝试使用 minikube 在本地部署它。当我在 Unix shell 中执行 minikube minikube service my-app --url 时,我获得了一个 IP。将 IP 放入浏览器中,我获得了索引页面,但尝试使用按钮切换到浏览器不会切换的另一个页面。我确信该应用程序是正确的,因为在本地执行它我得到了我想要的,但我不明白为什么这在 minikube 中失败了。我是新手,我不是专家。谁能帮我?

这里是索引页的 HTML 代码:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>

    <form method="get" action="./insert/item">
      <input type="submit" value="Insert">
    </form>

  </body>
</html>

这里是索引页面的服务器端:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

router.get('/insert/item', (req, res) => {
  res.redirect('/insert');
});

module.exports = router;

我猜你有一个与 CORS 安全相关的 JS 错误 (https://developer.mozilla.org/fr/docs/Web/HTTP/CORS)。这会阻止一个网站通过 JS 与另一个网站进行交互。

您可以在 :

中使用开发者工具进行检查

您的服务可能适用于 运行 本地,但不适用于 k8s 服务 ip 显示给您的远程网站。