一个多月以来,我一直在寻找解决方案。
我已经使用parcel-bundler
and构建了一个个人登录页面preact
。我也preact-router
用来处理我的路由。
这是一些代码。
主要应用组件
class App extends Component {
render(props) {
return (
<div id='main'>
{/* Components outside of router persist
throughout all pages */}
<Header />
<Nav tabs={tabs} />
<Router>
<About default path='/about' />
<Skills path='/skills' />
<Books path='/books' />
</Router>
</div>
)
}
}
导航组件
const Nav = ({ tabs }) =>
<nav>
{tabs.map(t => (
<p>
<Link activeClassName='active' href={ t.path }>{ t.title.toUpperCase() }</Link>
</p>
))}
</nav>
选项卡.json
[
{
"title": "About",
"path": "/about"
},
{
"title": "Skills",
"path": "/skills"
},
{
"title": "Books",
"path": "/books"
}
]
因此,每当我使用 parcel 的服务器实时运行页面时,一切都会按预期工作:我单击一个选项卡,然后呈现相应的页面/组件。
但是,每当我运行时parcel build blah blah
,打开我的index.html
并单击任何选项卡,我都会得到以下https://i.imgur.com/71ogrFA.png(单击选项卡时浏览器窗口的屏幕截图),以及浏览器更改为file:///C:/{route_name}
.
我试图理解为什么当我在 parcel 的实时服务器上运行我的页面时它可以工作,以及为什么它在构建后不起作用?看起来,在构建之后,单击任何选项卡会导致浏览器在文件系统中搜索页面?是这种情况吗?最终,我该如何解决这个问题?