【问题标题】:Nuxt: Import a js depending on i18nNuxt:根据 i18n 导入 js
【发布时间】:2021-07-30 23:03:33
【问题描述】:

我目前正在导入一个 js 文件并使用以下异步数据正确处理它

async asyncData({ route, error }) {
    try {
      const entry = await import(
        `~/assets/data/portafolio/${route.params.work}.js`)
      return { entry: entry.default || entry }
    } catch (error_) {
      error({
        message: 'Not Found',
        statusCode: 404,
      })
    }
    return {}
  },

但是当我尝试添加语言标识符来加载正确的文件时,这不起作用。

async asyncData({ route, error }) {
    try {
      const entry = await import(
        `~/assets/data/${this.i18n.locale}/portafolio/${route.params.work}.js`)
      return { entry: entry.default || entry }
    } catch (error_) {
      error({
        message: 'Not Found',
        statusCode: 404,
      })
    }
    return {}
  },

当然路径和文件存在,但我收到一个错误: http://localhost:3000/[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object] 404(未找到)

有什么想法吗?

提前谢谢你!

【问题讨论】:

  • 如果这些文件是静态的,也许你可以把你的文件放到static文件夹中。另外,查看@Nuxt/content 看看这是否对您有帮助。

标签: vue.js nuxt.js asyncdata


【解决方案1】:

我找到了解决办法,很简单。

我错过了添加应用程序,然后在 asuncData 中使用它(在那个上下文中 this. 没有做任何事情)

async asyncData({ route, app, error }) {
    try {
      const entry = await import(
        `~/assets/data/${app.i18n.locale}/portafolio/${route.params.work}.js`)
      return { entry: entry.default || entry }
    } catch (error_) {
      error({
        message: 'Not Found',
        statusCode: 404,
      })
    }
    return {}
  },

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 2021-12-18
    • 2019-12-30
    • 1970-01-01
    • 2020-10-23
    • 2020-08-04
    • 2021-05-08
    • 2022-12-26
    • 2019-09-19
    相关资源
    最近更新 更多