Netlify有这个伟大的功能--重写,允许我创建一些重复的页面。但是有一个问题。
Netlify有这个伟大的功能,允许我创建一些重复的页面,通过将它们添加到项目公共根目录下的_redirects 文件中(例如Hugo的public/_redirects )。
我用它来为我的一些网站提供动力。
如果我在content/original 下有一堆的页面,通过编写。
/copy/* /original/:splat 200
我可以调用URL
/copy
而当我访问https://mysite.com/copy ,我有存储在https://mysite.com/original 里面的内容,而且URL不会改变。这不是一个重定向(尽管有_redirects 文件名),这是一个重写,因为我在最后使用了200 代码。如果我使用301,那就是301重定向了。
总之,我偶然发现的问题是这样的:没有办法在末尾自动添加尾部斜杠,所以如果你访问/copy 和/copy/ ,并且你对图像和链接使用相对的URL,没有尾部斜杠的URL将导致404,图像将被破坏。
我在我的静态网站生成器中寻找解决方案,看看它是否能以另一种方式复制重定向,但最终我的解决方案是客户端。
而且非常简单。
我在页面的底部添加了这个JavaScript片段。
<script>
(function() {
if (!location.href.endsWith('/')) {
window.location = location.href + '/'
}
}())
</script>
现在,如果没有尾部斜线的页面将立即重新加载,并在最后添加斜线。
这个过程非常快,用户几乎看不到。