【问题标题】:JS files not being loaded in Nuxt projectNuxt 项目中未加载 JS 文件
【发布时间】:2019-09-05 23:09:22
【问题描述】:

我正在使用引导模板并尝试将其实现到 Nuxt 项目中。我相信我已经加载了除脚本之外的所有必要文件。

我正在将我的脚本导入nuxt.config.js。我尝试了几种不同的方法:

1.) 我尝试过像这样包含本地 src 路径:

script: [
    { src: '~assets/js/jquery.js' },
    { src: '~assets/js/popper.min.js' },
    { src: '~assets/js/bootstrap.min.js' },
    { src: '~assets/js/jquery.cubeportfolio.min.js' },
    { src: '~assets/js/parallax.min.js' },
    { src: '~assets/js/jquery.appear.min.js' },
    { src: '~assets/js/jquery.themepunch.tools.min.js' },
    { src: '~assets/js/jquery.themepunch.revolution.min.js' },
    { src: '~assets/js/extensions/revolution.extension.actions.min.js' },
    { src: '~assets/js/extensions/revolution.extension.carousel.min.js' },
    { src: '~assets/js/extensions/revolution.extension.kenburn.min.js' },
    { src: '~assets/js/extensions/revolution.extension.layeranimation.min.js' },
    { src: '~assets/js/extensions/revolution.extension.migration.min.js' },
    { src: '~assets/js/extensions/revolution.extension.parallax.min.js' },
    { src: '~assets/js/extensions/revolution.extension.slideanims.min.js' },
    { src: '~assets/js/extensions/revolution.extension.video.min.js' },
    { src: '~assets/js/revolution-addons/before-after-affect/revolution.addon.beforeafter.min.js'}
  ],

2.) 作为静态文件:

script: [
    { src: '/js/jquery.js' },
    { src: '/js/popper.min.js' },
    { src: '/js/bootstrap.min.js' },
    { src: '/js/jquery.cubeportfolio.min.js' },
    { src: '/js/parallax.min.js' },
    { src: '/js/jquery.appear.min.js' },
    { src: '/js/jquery.themepunch.tools.min.js' },
    { src: '/js/jquery.themepunch.revolution.min.js' },
    { src: '/js/extensions/revolution.extension.actions.min.js' },
    { src: '/js/extensions/revolution.extension.carousel.min.js' },
    { src: '/js/extensions/revolution.extension.kenburn.min.js' },
    { src: '/js/extensions/revolution.extension.layeranimation.min.js' },
    { src: '/js/extensions/revolution.extension.migration.min.js' },
    { src: '/js/extensions/revolution.extension.parallax.min.js' },
    { src: '/js/extensions/revolution.extension.slideanims.min.js' },
    { src: '/js/extensions/revolution.extension.video.min.js' },
    { src: '/js/revolution-addons/before-after-affect/revolution.addon.beforeafter.min.js'}
  ],

我的整个nuxt.config.js 文件如下所示:


export default {
  mode: 'universal',
  /*
  ** Headers of the page
  */
  head: {
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress-bar color
  */
  loading: { color: '#fff' },
  /*
  ** Global CSS
  */
  css: [
    '~/assets/css/style.css',
    '~/assets/css/animate.css',
    '~/assets/css/bootstrap-reboot.min.css',
    '~/assets/css/bootstrap.min.css',
    '~/assets/css/cubeportfolio.min.css',
    // '~/assets/css/fontawesome-all.min'
    '~/assets/css/green.css',
    '~/assets/css/jquery.fancybox.min.css',
    '~/assets/css/layer.css',
    '~/assets/css/morphext.css',
    '~/assets/css/navigation.css',
    '~/assets/css/settings.css',
    '~/assets/css/swiper.min.css',
    '~/assets/css/themify-icons.css',
    '~/assets/css/yellow.css',
    '~/assets/css/revolution-addons/before-after-affect/revolution.addon.beforeafter.css',
    '~/assets/css/revolution-addons/particles-effect/revolution.addon.particles.css'
  ],
  script: [
    { src: '~assets/js/jquery.js' },
    { src: '~assets/js/popper.min.js' },
    { src: '~assets/js/bootstrap.min.js' },
    { src: '~assets/js/jquery.cubeportfolio.min.js' },
    { src: '~assets/js/parallax.min.js' },
    { src: '~assets/js/jquery.appear.min.js' },
    { src: '~assets/js/jquery.themepunch.tools.min.js' },
    { src: '~assets/js/jquery.themepunch.revolution.min.js' },
    { src: '~assets/js/extensions/revolution.extension.actions.min.js' },
    { src: '~assets/js/extensions/revolution.extension.carousel.min.js' },
    { src: '~assets/js/extensions/revolution.extension.kenburn.min.js' },
    { src: '~assets/js/extensions/revolution.extension.layeranimation.min.js' },
    { src: '~assets/js/extensions/revolution.extension.migration.min.js' },
    { src: '~assets/js/extensions/revolution.extension.parallax.min.js' },
    { src: '~assets/js/extensions/revolution.extension.slideanims.min.js' },
    { src: '~assets/js/extensions/revolution.extension.video.min.js' },
    { src: '~assets/js/revolution-addons/before-after-affect/revolution.addon.beforeafter.min.js'}
  ],
  /*
  ** Plugins to load before mounting the App
  */
  plugins: [
  ],
  /*
  ** Nuxt.js dev-modules
  */
  buildModules: [
  ],
  /*
  ** Nuxt.js modules
  */
  modules: [
  ],
  /*
  ** Build configuration
  */
  build: {
    /*
    ** You can extend webpack config here
    */
    extend (config, ctx) {
    }
  }
}

检查页面时,我没有看到列出的任何脚本文件,这似乎是阻止此引导主题的其余部分正确加载的原因。

它应该是这样的: http://www.themesindustry.com/html/treely/index.html

我的整个回购可以在这里找到: https://github.com/SIeep/brandon-evans-portfolio

非常感谢任何形式的指导或帮助!

谢谢:)

【问题讨论】:

    标签: javascript vue.js nuxt.js


    【解决方案1】:

    我相信scripts 数组应该像这样在head 对象内:

    export default {
      ...
      head: {
        title: process.env.npm_package_name || '',
        meta: [
          { charset: 'utf-8' },
          { name: 'viewport', content: 'width=device-width, initial-scale=1' },
          { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
        ],
        link: [
          { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
        ]
      },
      script: [
        { src: '~assets/js/jquery.js' },
        { src: '~assets/js/popper.min.js' },
        { src: '~assets/js/bootstrap.min.js' },
        { src: '~assets/js/jquery.cubeportfolio.min.js' },
        { src: '~assets/js/parallax.min.js' },
        { src: '~assets/js/jquery.appear.min.js' },
        { src: '~assets/js/jquery.themepunch.tools.min.js' },
        { src: '~assets/js/jquery.themepunch.revolution.min.js' },
        { src: '~assets/js/extensions/revolution.extension.actions.min.js' },
        { src: '~assets/js/extensions/revolution.extension.carousel.min.js' },
        { src: '~assets/js/extensions/revolution.extension.kenburn.min.js' },
        { src: '~assets/js/extensions/revolution.extension.layeranimation.min.js' },
        { src: '~assets/js/extensions/revolution.extension.migration.min.js' },
        { src: '~assets/js/extensions/revolution.extension.parallax.min.js' },
        { src: '~assets/js/extensions/revolution.extension.slideanims.min.js' },
        { src: '~assets/js/extensions/revolution.extension.video.min.js' },
        { src: '~assets/js/revolution-addons/before-after-affect/revolution.addon.beforeafter.min.js'}
      ],
      ...
    }
    

    【讨论】:

    • 甜蜜!我认为这行得通!这也很有意义。我现在确实在检查器中看到了它们,并且我看到了一些变化,所以我相信这有效。非常感谢!
    【解决方案2】:

    您应该使用import 语句和webpack 而不是导入所有这些js 文件。这不是好的做法。

    另外,我不确定 nuxt 是否存在 script 属性。但是,如果您真的想这样做,您可以在 head 内容中导入您的文件,如下例所示:

    export default {
      mode: 'universal',
      /*
      ** Headers of the page
      */
      head: {
        title: process.env.npm_package_name || '',
        meta: [
          { charset: 'utf-8' },
          { name: 'viewport', content: 'width=device-width, initial-scale=1' },
          { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
        ],
        link: [
          { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
          { rel: 'stylesheet', href: '/assets/css/jquery.fancybox.min.css' }
        ],
        script: [
          { src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js'}
        ]
      },
    
    

    【讨论】:

    • 感谢您的回复!我应该在哪里使用import 语句?我是 Nuxt 的新手,我认为它们都应该加载到 nuxt.config.js 中。我也错过了我没有将脚本数组放在head 中。这似乎解决了这个问题,所以谢谢!
    猜你喜欢
    • 2021-12-22
    • 2020-04-19
    • 2019-07-24
    • 2020-10-06
    • 2020-03-01
    • 2020-05-20
    • 2016-08-28
    • 1970-01-01
    • 2020-10-18
    相关资源
    最近更新 更多