【问题标题】:How to allow the hash character in the URL?如何允许 URL 中的哈希字符?
【发布时间】:2021-11-01 00:14:50
【问题描述】:

我的应用只有两种 URL:/(根 URL)和/id(例如:/something)。但是现在我需要允许两个参数用哈希字符分隔,像这样:/something/param1/#/param2

所以在我的nuxt.config.js 中我添加了:

router: {
  extendRoutes(routes, resolve) {
    routes.push({
      path: '/:id/:location/#/:action',
      components: {
        default: resolve(__dirname, 'pages/_id')
      },
      chunkNames: {
        modal: 'pages/_id'
      }
    })
  }
}

但随后/something/param1/#/param2 URL 给出了 404 页面..

如果我这样做:

routes.push({
  path: '/:id/:location/hash/:action'
})

...并尝试 URL /something/param1/hash/param2 然后它工作正常。但是,我想在 URL 中的其他两个参数之间使用 #,而不是 hash 或其他任何参数。

知道这是否可行以及如何实现?

【问题讨论】:

  • @Radeanu 谢谢,看起来Nuxt 实际上是在期待%23 而不是#。我做了path: '/:id/:location/%23/:action',/something/param1/#/param2 失败,尽管/something/param1/%23/param2 有效。有什么想法吗?

标签: vue.js nuxt.js vue-router


【解决方案1】:

看这个答案:https://stackoverflow.com/a/3867513/8816585
您可以看到 URL 中的有效字符,主要是字母和一些特殊字符的小子集。 / 确实用作文件和目录的分隔符。

我不确定您是否看到 /#/ 在某处使用,但它显然不是标准的,可能不是所有浏览器都正确支持,也可能不是一个好主意。为什么需要这样的东西?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 2011-06-27
    • 2023-03-06
    • 1970-01-01
    • 2017-01-16
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多