NextJS 导出一个静态站点,结构如下:
|-- index.html
|-- article.html
|-- tag.html
|-- article
| |-- somearticle.html
| \-- anotherarticle.html
\-- tag
|-- tag1.html
\-- tag2.html
Run Code Online (Sandbox Code Playgroud)
我正在使用 .htaccess 文件来隐藏 .html 扩展名:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
Run Code Online (Sandbox Code Playgroud)
一切正常,除了:
domain/article它会显示 article.html 页面,但我的地址栏显示domain/article<--Good。domain/article/注意尾部斜杠),其中列出了文章目录的内容 <--Bad(与标签相同)domain/article将我带到domain/article/而不是在article.html没有.html扩展名的情况下显示。所以...
article\index.html在根目录下创建一个而不是一个文件不是更好吗?)我尝试使用exportTrailingSlash似乎相关的方法,但这产生了其他问题,例如在我所有链接的末尾总是有一个斜杠:
例如:如果我去domain/article/somearticle点击刷新,一些东西(.httaccess?)/在最后添加一个给我domain/article/somearticle/不可怕,只是不是很干净和不一致...... …
我正在使用 next.js 构建一个静态站点,并且我希望我website.com/about.html的工作方式如下:website.com/about- 我不确定为什么它强迫我输入.html.
即使我构建了我的项目:pages/about/index.js- 它会在静态站点上生成一个about.html而不是about/index.html。
我是 NEXT.JS 的新手,在部署静态站点时遇到一些问题。Nav.tsx我有一个如下所示的组件:
const Nav = () => {
return (
<nav className='nav p-3 border-bottom'>
<Link href='/' passHref>
<a className='pointer my-auto h2'>Blog </a>
</Link>
<Link href='/about' passHref>
<a className='ms-5 pointer lead my-auto'>Who We Are</a>
</Link>
<Link href='/services' passHref>
<a className='ms-5 pointer lead my-auto'>Services</a>
</Link>
<Link href='/contact' passHref>
<a className='ms-5 pointer lead my-auto'>Contact</a>
</Link>
</nav>
);
};
export default Nav;
Run Code Online (Sandbox Code Playgroud)
当我在本地运行开发服务器时,我可以使用这些链接在我的网站上导航。但是当我构建时,使用next build && next export链接不适用于导航。所有这些链接(/about、/services、/contact)都是我的目录中的文件pages。我是否在 中写了一些不正确的内容Nav.tsx,或者我误解了 NEXT …