Express 没有路由到静态 React 构建文件,因为缺少 URL slug

编程入门 行业动态 更新时间:2024-10-04 11:20:50

Express 没有<a href=https://www.elefans.com/category/jswz/34/1771390.html style=路由到静态 React 构建文件,因为缺少 URL slug"/>

Express 没有路由到静态 React 构建文件,因为缺少 URL slug

设置

我正在构建一个使用 Express 静态提供的 React 应用程序。

  • React 应用程序是使用

    npm run build
    构建的,静态文件位于
    build/
    目录中。

  • Express 使用以下代码静态提供这些文件(reference):

const path = require("path");
const express = require("express");
const app = express();
const port = 80;
const host = "::";

let root = path.join(__dirname, "build"); // Output of `npm run build`
app.use(express.static(root));  // Tell Express to serve static files from here

// The wildcard (*) lets all paths bypass Express 
// in favor of React handling client-side routing.
app.get("/*", (req, res) => {
  res.sendFile(path.join(root, "index.html"));
});

app.listen(port, host, () => {
  console.log(`Serving from root=${root}`);
  console.log(`Example app listening on host ${host} & port ${port}`);
});

我还将应用程序容器化并将其部署到 Ingress(也称为入口点)后面的 EKS。

  • Ingress URL 是
    ingresspany
  • 我的应用程序在
    ingresspany/my-app
    保留了一个地址。所有用户都必须能够访问这里,因此每个 URL 都应该使用这个
    /my-app
    slug.

问题

当我将浏览器指向

ingresspany/my-app
时,Express成功返回
build/index.html
。但是,找不到随附的静态 JavaScript 文件,导致没有生命的裸 HTML 文件。

我发现了原因:

  • 静态 JavaScript 文件位于
    ingresspany/my-app/js/main.hash.js
  • Express 正在尝试访问位于
    ingresspany/js/main.hash.js
    的文件(缺少
    my-app/
    )并返回 404。

如何让我的 Static Express Server 在为构建文件提供服务时包含 URL slug

my-app/
?有没有办法设置基本 URL?

回答如下:

更多推荐

Express 没有路由到静态 React 构建文件,因为缺少 URL slug

本文发布于:2024-05-31 03:34:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771228.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:路由   静态   文件   Express   slug

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!