🗨️

React: [Tips]CssInJs でBackground-imageを設定する方法

2022/02/26に公開

SRCフォルダ内の画像をBackgound-imageに指定する方法です。

最初は以下のように書いていたのですが、デバッグ実行すると画像は表示されたのですが、AWSのS3にアップすると画像が表示されませんでした。

backgroundImage: `url(@/assets/backgroundimg.png)`

Reactはコンパイル時のminifyで画像のパスが変更されるので
正しく読み込むにはimportとして動的に参照する必要があります。

+ import backgroundimg from '@/assets/backgroundimg.png'
import { css } from '@emotion/react'

const styles = {
  container: css({
-    backgroundImage: `url(@/assets/backgroundimg.png)`,
+    backgroundImage: `url(${backgroundimg})`,
    minHeight: '100vh',
    backgroundPosition: 'center',
    backgroundTepeat: 'no-repeat',
    backgroundSize: 'cover'
  })
}

export function Sample() {
  return (
    <div css={styles.container}>
      sample
    </div>
}

Discussion