将所有 CSS/JS 链接打包到包含的 PHP 文件中?

Posted

技术标签:

【中文标题】将所有 CSS/JS 链接打包到包含的 PHP 文件中?【英文标题】:Packing all CSS/JS links into an included PHP file? 【发布时间】:2014-04-07 03:41:08 【问题描述】:

在使用意大利面条代码编写 php 项目多年后,我选择切换到使用 Code Igniter 只是为了获得一些 MVC 框架的经验(是的,我知道它正在死去,但 Laravel/Composer 让我大吃一惊)。

我有一个多年前购买的网站主题,并决定在尝试创建视图时使用它。特定主题有大量的 JS 链接,但由于没有进行优化,而只是显示了所有功能。

将所有 Header 内容放入 PHP 文件,然后将其包含到实际的 View 文件中是否有任何问题?

<link href="css/main.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>

<script type="text/javascript" src="js/plugins/spinner/jquery.mousewheel.js"></script>

<script type="text/javascript" src="js/plugins/charts/excanvas.min.js"></script>
<script type="text/javascript" src="js/plugins/charts/jquery.flot.js"></script>
<script type="text/javascript" src="js/plugins/charts/jquery.flot.orderBars.js"></script>
<script type="text/javascript" src="js/plugins/charts/jquery.flot.pie.js"></script>
<script type="text/javascript" src="js/plugins/charts/jquery.flot.resize.js"></script>
<script type="text/javascript" src="js/plugins/charts/jquery.sparkline.min.js"></script>

<script type="text/javascript" src="js/plugins/forms/uniform.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.cleditor.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.validationEngine-en.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.validationEngine.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.tagsinput.min.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.autosize.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.maskedinput.min.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.dualListBox.js"></script>
<script type="text/javascript" src="js/plugins/forms/jquery.inputlimiter.min.js"></script>
<script type="text/javascript" src="js/plugins/forms/chosen.jquery.min.js"></script>

<script type="text/javascript" src="js/plugins/wizard/jquery.form.js"></script>
<script type="text/javascript" src="js/plugins/wizard/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/plugins/wizard/jquery.form.wizard.js"></script>

<script type="text/javascript" src="js/plugins/uploader/plupload.js"></script>
<script type="text/javascript" src="js/plugins/uploader/plupload.html5.js"></script>
<script type="text/javascript" src="js/plugins/uploader/plupload.html4.js"></script>
<script type="text/javascript" src="js/plugins/uploader/jquery.plupload.queue.js"></script>

<script type="text/javascript" src="js/plugins/tables/datatable.js"></script>
<script type="text/javascript" src="js/plugins/tables/tablesort.min.js"></script>
<script type="text/javascript" src="js/plugins/tables/resizable.min.js"></script>

<script type="text/javascript" src="js/plugins/ui/jquery.tipsy.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.collapsible.min.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.progress.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.timeentry.min.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.colorpicker.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.jgrowl.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.breadcrumbs.js"></script>
<script type="text/javascript" src="js/plugins/ui/jquery.sourcerer.js"></script>

<script type="text/javascript" src="js/plugins/jquery.fullcalendar.js"></script>
<script type="text/javascript" src="js/plugins/jquery.elfinder.js"></script>

<script type="text/javascript" src="js/custom.js"></script>

<script type="text/javascript" src="js/charts/chart.js"></script>

【问题讨论】:

标题内容是指您的所有 &lt;link&gt;&lt;script&gt; 在一个文件中并将其包含到视图中? 【参考方案1】:

这对于您的本地文件是可能的。当然,您需要两个 php 文件 - 一个用于 css,一个用于 JS。

这是一个例子

<?PHP

  header("content-type: application/javascript");

  $all_your_js_ressources = array(
      'libs/foo.js',
      'libs/bar.js',
      'modules/foo.module.js',
      'modules/bar.module.js',
      'plugins/foo.plugin.js',
      'plugins/bar.plugin.js',
      'main.js'
  );

  foreach ($all_your_js_ressources as $filename) 
      readfile( $filename );echo "\r\n";
  

?>

【讨论】:

+1 - 不要忘记设置您的 Content-Type 标头;)

以上是关于将所有 CSS/JS 链接打包到包含的 PHP 文件中?的主要内容,如果未能解决你的问题,请参考以下文章

带有 css/js 的 Django“包含”模板

如何在本地部署包含 css、js 和背景图像的 jekyll 站点?

经过webpack和babel打包过的前端代码可以还原最初的html+css+js吗?

php 将css / js添加到wordpress

如何将html+css+js打包成apk或者ipa文件?

PHP将文件文本附加到所有javaScript文件