如何在Vue 2中包含css文件

Nit*_*mar 29 webpack vue.js webpack-dev-server vuejs2

我是vue js的新手,并试图学习这个.我在我的系统中安装了一个全新的vue webpack版本.我有一个css,js和这个主题模板的图像,我想要包含在HTML中,所以我尝试添加它,index.html但我可以看到控制台中的错误,资产没有被添加.当我搜索时,我发现我可以requiremain.js文件中使用.但是我收到了错误:

以下我在我的main.js文件中尝试过:

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 import Vue from 'vue'
 import App from './App'
 import router from './router'

 require('./assets/styles/vendor.css');
 require('./assets/styles/main.css');
 require('./assets/scripts/vendor/modernizr.js');

 Vue.config.productionTip = false

 /* eslint-disable no-new */
 new Vue({
  el: '#app',
   router,
  template: '<App/>',
  components: { App }
 })
Run Code Online (Sandbox Code Playgroud)

虽然我尝试使用import来使用它,但我仍然遇到错误

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 import Vue from 'vue'
 import App from './App'
 import router from './router'

 import('./assets/styles/vendor.css')
 // require('./assets/styles/vendor.css');
 // require('./assets/styles/main.css');
 // require('./assets/scripts/vendor/modernizr.js');

 Vue.config.productionTip = false

 /* eslint-disable no-new */
 new Vue({
  el: '#app',
   router,
  template: '<App/>',
  components: { App }
 })
Run Code Online (Sandbox Code Playgroud)

这是错误截图: 错误信息

帮助我解决这个问题.

ged*_*dii 61

您可以在样式标记内的App.vue上导入css文件.

<style>
  @import './assets/styles/yourstyles.css';
</style>
Run Code Online (Sandbox Code Playgroud)

此外,如果您需要,请确保安装了正确的装载器.

  • 这很完美。我也使它能够像这样在`index.js`文件中导入样式:`import'@ / assets / css / styles.css`。生产生成的css文件似乎相同。我想知道哪种解决方案更好... (3认同)
  • 如果将 css 导入 .vue 中的样式标签内,则可以将其设置为作用域并仅在特定组件中应用样式。这是您可以做的另一件事,但我也不太确定哪种解决方案更好。 (2认同)
  • @GeraldineGolong 你好,感谢您的回复,抱歉之前没有提及,这是路径问题,我需要在源代码之前使用“@”符号并且它有效。使用 vue-clie v3。 (2认同)
  • @GeraldineGolong 你好,感谢您的回复,抱歉之前没有提及,这是路径问题,我需要在源代码之前使用 @ 符号并且它有效。使用 vue-clie v3。 (2认同)
  • @gedii 不得不说,这个修复让我度过了美好的早晨!想要分享爱 (2认同)
  • @托德T 不客气!现在你让我很开心,我过得很艰难,哈哈 (2认同)

小智 13

您可以在 script 标签内的组件上导入 CSS 文件

<template>
</template>

<script>
import "@/assets/<file-name>.css";

export default {}
</script>

<style>
</style>
Run Code Online (Sandbox Code Playgroud)


Sir*_*aka 10

尝试@在网址字符串之前使用符号。通过以下方式导入css:

import Vue from 'vue'

require('@/assets/styles/main.css')
Run Code Online (Sandbox Code Playgroud)

在您的App.vue文件中,您可以执行此操作以在样式标签中导入css文件

<template>
  <div>
  </div>
</template>

<style scoped src="@/assets/styles/mystyles.css">
</style>
Run Code Online (Sandbox Code Playgroud)

  • require('...') 转到您的 main.js 文件。请记住这些是您的“main.css”样式。意味着您希望在任何地方使用的样式。 (2认同)

Har*_*val 8

main.js

import "./assets/css/style.css"
Run Code Online (Sandbox Code Playgroud)

style.css——您可以导入多个文件。

@import './dev.css';
body{
    color: red
}
Run Code Online (Sandbox Code Playgroud)

开发文件

body{
    font-size: 24px;
}
Run Code Online (Sandbox Code Playgroud)


gih*_*nka 6

如果您想附加此css文件,可以使用vue 文件的功能header来完成。mounted()请参阅示例。
注意:假设您可以像在浏览器中一样访问该css文件。http://www.yoursite/assets/styles/vendor.css

mounted() {
        let style = document.createElement('link');
        style.type = "text/css";
        style.rel = "stylesheet";
        style.href = '/assets/styles/vendor.css';
        document.head.appendChild(style);
    }
Run Code Online (Sandbox Code Playgroud)