ThinkPHP 5.x content-type 设置 css

2017-08-30  本文已影响0人  喷射的熔浆

content-type 定义了浏览器把获取的文件当什么运行,例如一个javascript文件,设置为text/html就不给运行了,必须在Response Header中指定正确兼容的才能被运行。

例如,我的多个css文件都是PHP动态生成的,如果直接

... # in a method of a class extending think\Controller
return $this->fetch("/style/$name.css",[
   'color' => 'rgb(252,255,2)',
   'border-radius' => '.34rem'
   'width' => 750px',
   'bg_img' => 'http://website.com/favicon.ico'
]);
...

可以设置config.php中为css,但是所有的html文件都会被识别为css,所以不能动配置文件中的

solution

不使用默认的response配置,而是动态更新一些配置,如下

$content = $this->view->fetch("/style/$name.css", [
   'color' => 'rgb(252,255,2)',
   'border-radius' => '.34rem'
   'width' => 750px',
   'bg_img' => 'http://website.com/favicon.ico'
]);
# fetch 后传给 Response 作为输出内容,不直接 return
$res = new Response;
$res->content($content)->contentType('text/css')->send();

solution 2

可以使用less,scss,sass等来预处理呀,but ....

Reference

上一篇下一篇

猜你喜欢

热点阅读