我正在尝试向 next.js 添加背景图像,但无法这样做。我尝试了许多解决方案 inline scc、style jsx 和其他技术。无法直接写入样式,因为它会出错
错误:
Expected a template literal or String literal as the child of the JSX Style tag (eg: <style jsx>{`some css`}</style>), but got BinaryExpression
也试过这个解决方案,但出现错误:
代码
const img = require("../../assets/images/security-team.jpg");
<div
style={{
backgroundImage: "url(" + `${require("./path-to-the-image")}` + ")",
width: "100%",
height:[HEIGHT OF THE IMAGE],
backgroundRepeat: "no-repeat",
backgroundSize: "cover"
}}
>XXX</div>
错误
Failed to compile
./public/121.png 1:0
Module parse failed: Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)
但是当尝试这段代码时,它不会出错,背景图片也不会显示在网页上。
代码
export default function Home() {
let styleConfig = { backgroundimage : '/abc.jpeg' }
return (
<div className="container" style={styleConfig} ></div>
<style jsx>{`
.container {
min-height: 100vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-image : "/public/121.png"
}
`}</style>
<style jsx global>{`
html,
body {
padding: 0;
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto,
Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue,
sans-serif;
}
* {
box-sizing: border-box;
}
`}</style>
</div>
)
}