
最近在使用CSS导入喷漆
文件时,遇到了创建临时
文件出错的问题。经过查找原因,发现是
代码中对于
文件路径的引用不正确造成的。
首先,在CSS中导入喷漆
文件需要使用background-image
属性,而写入喷漆
文件的格式如下:
```
.url-SprayPaintClass {
background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" view
Box="0 0 8 8"%3E%3Cpath fill="%23ff0000" d="M0 0h8v8H0z"/%3E%3C/svg%3E');
}
```
其中,url的部分就是喷漆
文件的
内容,可以将其存储到
一个临时
文件中。但是,在存储临时
文件时,必须要注意
文件路径的引用问题。
在我的
代码中,我使用以下语句创建临时
文件:
```
var blob = new Blob([url],{ type: 'image/svg+xml' });
var url = URL.
createObjectURL(blob);
```
这里的问题在于,创建Blob对象时传入的url并非是上述background-image
属性中url的
内容,而是实际
文件的路径。而且这个路径必须是相对于
页面的路径,而非相对于CSS
文件的路径。
由于我的CSS
文件是存放在根目录下的`/styles/style.css`,而
页面文件是存放在`/pages/index.html`,所以应该传入的是`../styles/style.css`而不是`/styles/style.css`。
修改后的
代码如下:
```
var blob = new Blob([url],{ type: 'image/svg+xml' });
var url = URL.
createObjectURL(blob);
var style = document.createElement('style');
style.innerHTML = '.url-SprayPaintClass { background-image: url(' + url + '); }';
document.head.appendChild(style);
```
修改后,再次运行
代码,就可以成功地创建临时
文件,实现导入喷漆
文件的
效果了。在开发过程中,一定要注意
文件路径的引用问题,避免出现类似的
错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。