繁体   English   中英

使用 express 为非根路径提供静态文件

[英]Serving static files with express for non-root paths

我正在使用 express 来提供 React 应用程序(使用 Create React App 引导)。 该项目具有以下文件结构:

|--client/
|    |--build/
|    |    |--static/
|    |    |    |--main.css
|    |    |    |--main.js
|    |    |
|    |    |--index.html
|    |
|    |--public/
|    |--src/
|
|--server/
     |--index.js

build 文件夹包含所有静态文件,我想从非根 url 提供它们。 快递服务器配置:

app.use('/some_path', express.static(path.resolve(__dirname,'../client/build')));

在我的 index.html 中,我最初有 .css 和 .js 文件,其中href='/static/main.csssrc='/static/main.js不起作用(404 错误),因为我相信服务器会尝试在/some_path/static/下查找文件,但找不到它们。

当我尝试将 index.html 中的路径更改为href='/some_path/static/main.css ,我获得了所有请求文件的 200 个状态(发送的文件与原始文件匹配),但页面上没有呈现任何内容。 检查 html 页面在正文中显示:

<div id="root">
    <!-- React empty: 1 -->
</div>

知道我在这里做错了什么吗? 在使用 React Create App 时,有什么我遗漏的简单东西或需要配置的东西吗?

https://expressjs.com/en/starter/static-files.html

医生已经说过以下内容:

要为 express.static 函数提供的文件创建虚拟路径前缀(该路径在文件系统中实际上不存在),请为静态目录指定挂载路径,如下所示:

app.use('/static', express.static('public'))

例如:有如下路径:

https://localhost:port/product/new

使用文件夹“public”中的所有 .JS 和 .CSS 文件,通常,Express 将返回无法加载 .JS 和 .CSS 文件的错误。 我们只需要包含以下行:

app.use('/product', express.static('public'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM