reactact.js(preactを使用)が新しく、非同期ルーティング(preact-async-router)に問題があります。preact非同期ルータがチャンクを見つけられない
マイmain.js:
import { h, render } from 'preact';
import {Router, Route} from 'preact-router';
import AsyncRoute from 'preact-async-route';
import Home from './components/home.jsx';
/** @jsx h */
function getHelloWorld(){
return System.import('./components/hello.jsx').then(module => module.default);
}
render(
<Router>
<Route path="/" component={Home} />
<AsyncRoute path="/hello/:foo" component={getHelloWorld}
loading={()=>{alert("loading...");}} />
</Router>
, document.getElementById("app")
);
マイhome.jsx:
import {h, Component} from 'preact';
import {Link} from 'preact-router';
/** @jsx h */
export default class Home extends Component {
render() {
return <h1>
This is home page<br/>
<Link href='/hello/Earth'>Earth</Link>
</h1>;
}
}
マイhello.jsx:
import {h, render, Component} from 'preact';
/** @jsx h */
export default class Hello extends Component {
render() {
return <h1>Hello {this.props.matches.foo}!</h1>
}
}
のWebPACKはbundle.jsと1を作成します。 bundle.js(hello.jsx用)!
私のリソースのすべて - dir(resource-dirはexpress.staticで利用可能です)。
home.jsxがロードされ、リンクが(localhost/hello/Earth)を指しています。
問題は、1.bundle.jsがロードされていないことです。 ブラウザ(bundle.js)が "/hello/1.bundle.js"の下でファイルを要求していて、 "/resources/1.bundle.js"の下には要求していません!
どうすれば修正できますか?
編集:
これで動作します。私のwebpack設定に "/ resources /"と "publicPath"を追加しました。ありがとうございました!