我应该如何在React中使用服务器端渲染呈现图像和css文件?
这是我的服务器代码:
const express = require('express')
const router = express.Router()
const ReactDOM = require('react-dom/server');
import Master from '../../../client/Master'
router.get('/', (req, res) => {
res.render('test.html', {reactOutput: ReactDOM.renderToString(<Master/>)});
});
主组件:
import React from "react";
import Intro from "./pages/Intro";
import Footer from "./components/Footer";
import Header from "./components/Header";
export default class Master extends React.Component {
constructor() {
super();
this.state = {appStatus: 'INTRO'}
}
render() {
let layout;
switch (this.state.appStatus) {
case "INTRO":
layout = <Intro/>;
}
return (
<div>
<Header/>
{layout}
<Footer/>
</div>
)
}
}
但是,当我使用babel运行服务器时,我遇到了这个错误:
/assets/img/logo.png: 意外的字符 '?' (1:0)
这是Header组件,它尝试要求Logo。
import React from "react";
**import logo from '../../assets/img/logo.png';**
export default class Header extends React.Component {
constructor() {
super();
}
render() {
return (
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">**<img width="250" src={logo} alt=""/></a>**
</div>
</div>
</nav>
);
}
}
但是对于客户端的webpack它可以正常工作。