ThinkPHP 5.x content-type 设置 css/js

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 安装Gulp首先需要安装Node.js,并在控制台输入$ npm install gulp -gMac端需要写成$...
    LaBaby_阅读 971评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,518评论 1 32
  • 参照Gulp for Beginners来学习Gulp基本内容。以下为学习记录笔记。 安装Gulp 首先需要安装N...
    JenniferYe阅读 2,577评论 1 17
  • 今天早上,看到一则新闻,是一个身患重病多年的女子求生的故事。这样的新闻,不禁让我联想翩翩。如果我,重病多年不治,家...
    大丸子取闹阅读 271评论 2 0