在主题组件中,它会在屏幕上显示一个图像(帽子)
要直接在 SCSS 中使用图像,它会像这样使用其资源名称,
这些图像在 about.json 中定义
{
"name": "christmas-decorations",
"about_url": "",
"license_url": "",
"author": "",
"assets": {
"red-hat1": "assets/decorations/red-hat1.png",
"red-hat2": "assets/decorations/red-hat2.png",
"squirrel2": "assets/decorations/squirrel2.png"
}
}
要在 SCSS 中使用这些图像,如果直接使用资源名称,效果很好,如下所示
background: transparent url($red-hat1) top left no-repeat;
我想添加一个设置来选择图像。
在 settings.yml 中,我有这个,用于选择一个帽子图像显示在屏幕上
hat_type:
default: red-hat1
type: enum
choices:
- red-hat1
- red-hat2
- squirrel2
我可以在 SCSS 中使用 if else 来使用图像,但这可能会太长……
@if $hat_type == "red-hat1" {
background: url($red-hat1) no-repeat center;
} @else if $hat_type == "red-hat2" {
background: url($red-hat2) no-repeat center;
} @else if $hat_type == "squirrel2" {
background: url($squirrel2) no-repeat center;
}
我尝试在 SCSS 中使用一个函数
background: url(get_image($hat_type)) no-repeat center;
@function get_image($name) {
@return "assets/decorations/" + $name + ".png"
}
但这会得到一个 url,如
https://www.domain.com/stylesheets/assets/decorations/squirrel2.png
这不起作用,它应该像这样解析……
https://www.domain.com/uploads/db9860/original/3X/9/1/91d36fdb030047c6390f9ca85604fdbfd2e3fc12.png
有人能给点提示吗,非常感谢
…


