【问题标题】:Non-english url path非英文网址路径
【发布时间】:2019-12-22 03:41:48
【问题描述】:

在使用类似 php 的方法的 next.js 中 - pages 文件夹中的文件成为 url 路径。比如/pages/reader.js会被urlhttp://localhost/reader加载。

问题是我无法理解如何在 next.js 中使用非英文 url 路径?

Codesandbox example。 (更新页面以从服务器加载)

网址示例:

http://localhost/читатель

chrome 在内部更改为:

http://localhost/%D1%87%D0%B8%D1%82%D0%B0%D1%82%D0%B5%D0%BB%D1%8C

在 next.js pages 文件夹中文件名为:

pages/читатель.tsx // not working
pages/%D1%87%D0%B8%D1%82%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.tsx //working but i can't name files like that, i will not find what i need later.

也许 php 用户以某种方式解决了这个问题;)

【问题讨论】:

  • 您是否尝试过完全按照 url 中的方式命名文件?西里尔文?
  • @emix 是的,它在示例中并且不起作用:(
  • 我想你错过了url编码的概念:en.wikipedia.org/wiki/Percent-encoding
  • @MarcinOrlowski 你能解释一下吗?我不认为我想念它。
  • 一个问题是您的文件系统用于存储该文件名的编码。那不一定是 UTF-8,Web 服务器可能不会翻译编码。

标签: node.js next.js


【解决方案1】:

尝试使用核心javascript的encodeURI(),它可以将特定字符转换为所需的url形式

const url=encodeURI('читатель.tsx');
console.log(url);//%D1%87%D0%B8%D1%82%D0%B0%D1%82%D0%B5%D0%BB%D1%8C.tsx

那我们就可以用这个路径来导航了

【讨论】:

  • 当您想导航到该文件时,您在 url 中传递文件名.. 对!!!!现在您可以传递我建议的编码网址
  • uri 被浏览器编码,你不需要编码它。算了,你需要先了解 next.js 是如何工作的。
  • 知道了..您必须创建自定义路径并重定向到该文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多