![](/img/trans.png)
[英]express.static() not serving files from public folders in router paths that are not "/"
[英]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.css
和src='/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.