Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css sass将导入转换为导入url_Css_Sass_Gruntjs - Fatal编程技术网

Css sass将导入转换为导入url

Css sass将导入转换为导入url,css,sass,gruntjs,Css,Sass,Gruntjs,新的萨斯和格伦特。我所有与供应商相关的css文件都在_vendor.scss中 @import "public/css/bower_components/bootstrap/dist/css/bootstrap.css"; 这转化为 main.css @import url(public/css/bower_components/bootstrap/dist/css/bootstrap.css); 我希望是这样 @import "public/css/bower_components/boo

新的萨斯和格伦特。我所有与供应商相关的css文件都在_vendor.scss中

@import "public/css/bower_components/bootstrap/dist/css/bootstrap.css";
这转化为 main.css

@import url(public/css/bower_components/bootstrap/dist/css/bootstrap.css);
我希望是这样

@import "public/css/bower_components/bootstrap/dist/css/bootstrap.css";
而不是url如何做。 因为接下来我想使用cssjoin将所有导入的css合并到一个文件中,并使用grunt将cssmin合并到一个文件中

文件夹结构

public ---> scss --->vendor-> _vendor.scss
public ---> css ---> bower_components --> ......
public ----> css ---> main.css 
繁重的任务

    sass: {
        dist: {
            files: {
                'public/css/main.css': 'public/scss/main.scss'
            }
        }
    },

    autoprefixer: {
        dist: {
            options: {
                map: true
            },
            files: {
                'public/css/main.css': 'public/css/main.css'
            }
        }
    },

    watch: {
        css: {
            files: '**/*.scss',
            tasks: ['sass', 'autoprefixer']
        }
    },
那是因为。如果您
@import'some/file.css'
,它将被编译为
@import url(some/file.css)
,因为SASS希望保持原始css导入完好无损(同时讽刺的是以标准方式对其进行更改)

但是,如果您将CSS文件的扩展名更改为
.scss
,并将其导入主文件中,SASS编译器将执行其操作,并将其内容包含在原始导入规则中。它之所以有效,是因为常规CSS语法也是有效的SCSS语法,并且它欺骗编译器将您的导入规则视为SCSS导入

而且,似乎没有一个合理的简单方法来改变这种行为,而且显然它不会很快改变


希望这有帮助

您可能需要向我们展示更多代码和文件结构。它似乎没有在那个地址找到css文件,所以它假设它是一个URL。你能告诉我们你的grunt任务是什么样子吗?@DominicAquilina添加了代码n文件夹结构。@KodieGrantham添加了代码n文件夹结构。是的,你的相对路径似乎是错误的。要从您的_vendor.scss文件中访问bower_components文件夹,您需要通过“../”向上爬几层。谢谢,这解决了让我头痛了几个小时的错误。我已经试着在熟悉少一点后再尝试一下SASS,但我想我会坚持少一点。