Giter Club home page Giter Club logo

Comments (17)

chengqiang1992 avatar chengqiang1992 commented on May 8, 2024 57

我也遇到类似的问题。 当CSS 背景图片URL是写在相应div的class里 如background-image: url('../assets/images/1.png'),该背景图片会显示,但是如果该URL写在对应div的style属性内,该图片不会显示。不知道我的配置文件要做什么样的修改

from vue-cli.

Odin04ka avatar Odin04ka commented on May 8, 2024 28

just do next background: url(~assets/img/m/bg-header.jpg);

from vue-cli.

saloev avatar saloev commented on May 8, 2024 28

i do something like this:

$assets: '~@/assets/';

html {
  background: url( $assets + '/path.jpeg') no-repeat center center fixed; 
}

from vue-cli.

mk12 avatar mk12 commented on May 8, 2024 15

@saloev, I think it looks even better like this:

@function asset($path) {
  @return url("~@/assets/#{$path}");
}

html {
  background: asset('path.jpeg') no-repeat center center fixed; 
}

Following this tutorial, I was able to put this function and other variables in an implicitly loaded file variables.scss:

// vue.config.js
css: {
  loaderOptions: {
    sass: {
      data: "@import '@/assets/variables.scss';"
    }
  }
}

from vue-cli.

PrimozRome avatar PrimozRome commented on May 8, 2024 14

@yyx990803

Hi. It is working, looks like I am having some problems when I have added support for Stylus... I will try to figure it out what is happening.

One question though... do I have to use file paths inside vue files relative to that file or always start from ./assets/img? For example if my structure is like this:

src
  assets
    img
      bg.jpg
  components
    pages
      login.vue

So when referencing bg.jpg inside a CSS in login.vue should I reference it like:

background-image: url('./assets/img/bg.jpg')

or

background-image: url('../../assets/img/bg.jpg')

Thanks for helping.

from vue-cli.

yyx990803 avatar yyx990803 commented on May 8, 2024 8

The latter - always relative to the file you are editing.

from vue-cli.

yyx990803 avatar yyx990803 commented on May 8, 2024 4

Use relative paths if you can. Paths without ./ are treated as root paths.

from vue-cli.

luckymore avatar luckymore commented on May 8, 2024 4

vue-cli3中,这样修改好麻烦啊,,还有别的办法没?

chainWebpack: config => {
    config.module
      .rule('images')
      .use('url-loader')
      .tap(options => {
        return merge(options, {
          publicPath: '//id.jd.com/www/3c-medal/babel/',
          limit: 3000
        })
      })
    config.module
      .rule('svg')
      .use('file-loader')
      .tap(options => ((options.publicPath = '//id.jd.com/www/3c-medal/babel/'), options))
}

from vue-cli.

chaotic-stump avatar chaotic-stump commented on May 8, 2024 2

In case anybody came looking to add an image to a css content element like I was:

content: url(~@/assets/path/to-image.png);

Thanks @saloev and @mk12! I looked everywhere for this.

from vue-cli.

PrimozRome avatar PrimozRome commented on May 8, 2024 1

Tried that as well but does not make any difference... Here's how I am trying to do it with my app.vue

<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  data () {
    return {
      shared_state: window.shared_state
    }
  }
}
</script>

<style lang="stylus">
body
  direction: ltr;
  background: url('./assets/img/bg1.jpg')

#app
    height: 100%;
</style>

from vue-cli.

yyx990803 avatar yyx990803 commented on May 8, 2024

Tested and it's working for me. Please provide a reproduction repo.

from vue-cli.

yy-dev7 avatar yy-dev7 commented on May 8, 2024

请问 放在template中的图片路径应该怎么设置呢?

from vue-cli.

wk1507341428 avatar wk1507341428 commented on May 8, 2024

放在template中的图片,打包出来以后,会发现路径错误~ 应该和webpack打包有关系,vue-cli 2.0 有地方可以修改配置,但是vue-cli 3.0 怎么修改呢?

from vue-cli.

theRod15 avatar theRod15 commented on May 8, 2024

Tried that as well but does not make any difference... Here's how I am trying to do it with my app.vue

<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  data () {
    return {
      shared_state: window.shared_state
    }
  }
}
</script>

<style lang="stylus">
body
  direction: ltr;
  background: url('./assets/img/bg1.jpg')

#app
    height: 100%;
</style>

This works perfect, thanks

from vue-cli.

oivinds avatar oivinds commented on May 8, 2024

@yyx990803 Is there a reason why @SeanRParker solution is not documented? Or maybe I have missed it?

from vue-cli.

NullYing avatar NullYing commented on May 8, 2024
background: url("~@assets/login_bg.jpg")

I use ~@assets and it's show

To install it, you can run: npm install --save @assets/login_bg.jpg

from vue-cli.

fangbinwei avatar fangbinwei commented on May 8, 2024

@oivinds the doc of css-loader explains some about ~ in url

@NullYing If you confirm it's bug of CLI, you can open a new issue and provide a reproducible repo

from vue-cli.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.