gpt4 book ai didi

php - 使用 Controller 通过 codeigniter 处理返回的自定义 css 和 javascript 文件

转载 作者:行者123 更新时间:2023-12-04 06:20:42 25 4
gpt4 key购买 nike

我正在开发一个 php/codeigniter 项目,我正在考虑创建一个专门用于处理返回的自定义 css 和 javascript 文件的 Controller 。

在以前的项目中,我在 View 文件的标题中包含了外部 CSS 和 JS 文件,但它们基本上必须是静态的,因为它们只是作为常规 Assets 由服务器发送。对于我的下一个项目,我正在考虑使用 Controller 并基本上使我的 CSS/Javascript 文件成为由 Controller 加载的“ View ”。

你们有什么感想?这是一个好方法吗?有没有普遍接受的更好的方法来做到这一点?

最佳答案

通过为你的 js/css 使用 Controller ,你有为每个文件请求加载大量不必要的东西的开销。安全类、输入类、路由器、异常等。

对于应该是静态内容的内容,您不需要任何这些。您也不希望文件是动态的(根据请求更改),因为这会影响浏览器缓存。文件要么在加载时被缓存,要么你将失去浏览器缓存的好处。

最好的办法是组合文件,最小化它们,并将内容写入静态文件,但它们不是动态的。但是,它们可能不应该是。

您可以做的另一件事是使用 php 文件组合静态文件并在您的 <link> 中引用它。标签(screen.php)。简单的 CSS 示例:

<?php
header('Content-type: text/css');
$files = array(
'css/reset.css',
'css/screen.css',
'css/typography.css',
);
foreach ($files as $file)
{
readfile($file);
}

无论哪种方式,您都应该更新文件名,也许使用查询字符串,以避免提供旧的缓存文件。示例: /screen.css?version=2
我确实使用 $this->load->view()有时用于动态 js,但仅用于内联脚本标签(例如动态 WYSIWYG 配置)。这允许您将变量传递给“ View ”文件并避免缓存问题。

我的观点是,仅仅为了服务应该是静态的内容而启动 CI 和所有相关的依赖项是不值得的。

关于php - 使用 Controller 通过 codeigniter 处理返回的自定义 css 和 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6613376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com