【发布时间】:2017-07-30 01:16:09
【问题描述】:
我正在使用 express 来提供一个 react 应用程序(使用 Create React App 引导)。该项目的文件结构如下:
|--client/
| |--build/
| | |--static/
| | | |--main.css
| | | |--main.js
| | |
| | |--index.html
| |
| |--public/
| |--src/
|
|--server/
|--index.js
构建文件夹包含所有静态文件,我想从非根 url 提供它们。快递服务器已配置:
app.use('/some_path', express.static(path.resolve(__dirname,'../client/build')));
在我的 index.html 中,我最初有带有 href='/static/main.css 和 src='/static/main.js 的 .css 和 .js 文件,它们不起作用(404 错误),因为我相信服务器会尝试在 @987654325 下查找文件@ 为文件而不是找到它们。
当我尝试将 index.html 中的路径更改为 href='/some_path/static/main.css 时,我得到了所有请求文件的 200 个状态(发送的文件与原始文件匹配),但页面上没有呈现任何内容。检查 html 页面会在正文中显示:
<div id="root">
<!-- React empty: 1 -->
</div>
知道我在这里做错了什么吗?使用 React Create App 时是否缺少一些简单的东西或需要配置的东西?
【问题讨论】:
-
要让
href='/static/main.css'工作,您只需要app.use(express.static(path.resolve(__dirname,'../client/build')));。这将是提供静态文件的正确方法。 -
是的,它适用于
app.use(express.static(...)),但我想对其进行配置,以便仅向特定路由的请求提供静态文件。从我读过但到目前为止对我不起作用的内容看来这是可能的 -
好吧,我给了你一些有用的东西,但你拒绝了。我不太了解您未说明的要求,无法提出其他建议。
标签: javascript html reactjs express