如何在 OctoberCMS 中禁用资产组合开发
How to disable assets combining on development in OctoberCMS
October CMS 提供方便的功能来组合 js/css 资产。在我的 layouts/default.htm
中,我有这样定义的脚本:
<script src="{{ [
'assets/javascript/jquery.js',
'assets/vendor/bootstrap/js/transition.js',
'assets/vendor/bootstrap/js/alert.js',
'assets/vendor/bootstrap/js/button.js',
'assets/vendor/bootstrap/js/carousel.js',
'assets/vendor/bootstrap/js/collapse.js',
'assets/vendor/bootstrap/js/dropdown.js',
'assets/vendor/bootstrap/js/modal.js',
'assets/vendor/bootstrap/js/tooltip.js',
'assets/vendor/bootstrap/js/popover.js',
'assets/vendor/bootstrap/js/scrollspy.js',
'assets/vendor/bootstrap/js/tab.js',
'assets/vendor/bootstrap/js/affix.js',
'assets/javascript/app.js',
'@framework',
'@framework.extras'
]|theme }}"></script>
{% scripts %}
在 config/cms.php
文件中我有:
'enableAssetCache' => false,
'enableAssetMinify' => null,
并且在 config/app.php
中:
'debug' => true,
这导致了在 twig 数组中定义的所有脚本的组合。在呈现的网站上,我得到一个 javascript 文件
<script src="http://localhost/Test/october/combine/2cdc17b704821cd2ffbd9be8e4d340f9-1457016128"></script>
只要 'debug' => true
在 config/app.php
中启用(因此在开发环境中),我希望可以选择不合并我的资产。
我知道,如果我将我的资产添加到我的布局中的单独脚本标记中,我可以让 October CMS 单独提供它们。但这也会在生产中单独为他们服务。示例:
<script src="{{ 'assets/js/one.js'|theme }}"></script>
<script src="{{ 'assets/js/two.js'|theme }}"></script>
我在 github 上发现了这个 1.5 年前的问题,没有有用的答案:
https://github.com/octobercms/october/issues/289
并且文档也没有说明关于此事的任何有用信息:
https://octobercms.com/docs/markup/filter-theme
你知道如何处理这个吗?尽管我可能可以在 OctoberCMS 中创建一个插件,它会根据配置设置(调试 true/false)将资产注入布局。但据我所知,从插件中注入资产,需要将资产放在 插件目录 而不是 主题目录 .
好的,我设法解决了这个问题,但没有解决问题中提到的 config/app.php
。
其他解决方案需要在 OctoberCMS 的根目录中创建 .env
文件。此文件默认位于 .gitignore
中,因此您可以在生产和开发中使用不同的 .env 文件 (Piece of documentation)
该文件的内容应该是:
APP_ENV=dev
然后你可以访问树枝中的变量:
{% if this.environment == 'dev' %}
<script src="{{ 'assets/vendor/jquery.min.js'|theme }}"></script>
<script src="{{ 'assets/semantic/dist/semantic.min.js'|theme }}"></script>
<script src="{{ 'assets/javascript/app.js' | theme }}"></script>
{% framework extras %}
{% else %}
<script src="{{ [
'assets/vendor/jquery.js',
'assets/semantic/dist/semantic.js',
'assets/javascript/app.js',
'@framework',
'@framework.extras'
]|theme }}"></script>
{% endif %}
尝试在您的配置文件中 关闭 (app/config/cms.php)
/*
|--------------------------------------------------------------------------
| Determines if the asset minifcation is enabled.
|--------------------------------------------------------------------------
|
| If the minifcation is enabled, combined assets are compressed (minified).
| It is recommended to disable the minification during the development, and
| enable it in the production mode.
|
*/
'enableAssetMinify' => true,
October CMS 提供方便的功能来组合 js/css 资产。在我的 layouts/default.htm
中,我有这样定义的脚本:
<script src="{{ [
'assets/javascript/jquery.js',
'assets/vendor/bootstrap/js/transition.js',
'assets/vendor/bootstrap/js/alert.js',
'assets/vendor/bootstrap/js/button.js',
'assets/vendor/bootstrap/js/carousel.js',
'assets/vendor/bootstrap/js/collapse.js',
'assets/vendor/bootstrap/js/dropdown.js',
'assets/vendor/bootstrap/js/modal.js',
'assets/vendor/bootstrap/js/tooltip.js',
'assets/vendor/bootstrap/js/popover.js',
'assets/vendor/bootstrap/js/scrollspy.js',
'assets/vendor/bootstrap/js/tab.js',
'assets/vendor/bootstrap/js/affix.js',
'assets/javascript/app.js',
'@framework',
'@framework.extras'
]|theme }}"></script>
{% scripts %}
在 config/cms.php
文件中我有:
'enableAssetCache' => false,
'enableAssetMinify' => null,
并且在 config/app.php
中:
'debug' => true,
这导致了在 twig 数组中定义的所有脚本的组合。在呈现的网站上,我得到一个 javascript 文件
<script src="http://localhost/Test/october/combine/2cdc17b704821cd2ffbd9be8e4d340f9-1457016128"></script>
只要 'debug' => true
在 config/app.php
中启用(因此在开发环境中),我希望可以选择不合并我的资产。
我知道,如果我将我的资产添加到我的布局中的单独脚本标记中,我可以让 October CMS 单独提供它们。但这也会在生产中单独为他们服务。示例:
<script src="{{ 'assets/js/one.js'|theme }}"></script>
<script src="{{ 'assets/js/two.js'|theme }}"></script>
我在 github 上发现了这个 1.5 年前的问题,没有有用的答案: https://github.com/octobercms/october/issues/289
并且文档也没有说明关于此事的任何有用信息: https://octobercms.com/docs/markup/filter-theme
你知道如何处理这个吗?尽管我可能可以在 OctoberCMS 中创建一个插件,它会根据配置设置(调试 true/false)将资产注入布局。但据我所知,从插件中注入资产,需要将资产放在 插件目录 而不是 主题目录 .
好的,我设法解决了这个问题,但没有解决问题中提到的 config/app.php
。
其他解决方案需要在 OctoberCMS 的根目录中创建 .env
文件。此文件默认位于 .gitignore
中,因此您可以在生产和开发中使用不同的 .env 文件 (Piece of documentation)
该文件的内容应该是:
APP_ENV=dev
然后你可以访问树枝中的变量:
{% if this.environment == 'dev' %}
<script src="{{ 'assets/vendor/jquery.min.js'|theme }}"></script>
<script src="{{ 'assets/semantic/dist/semantic.min.js'|theme }}"></script>
<script src="{{ 'assets/javascript/app.js' | theme }}"></script>
{% framework extras %}
{% else %}
<script src="{{ [
'assets/vendor/jquery.js',
'assets/semantic/dist/semantic.js',
'assets/javascript/app.js',
'@framework',
'@framework.extras'
]|theme }}"></script>
{% endif %}
尝试在您的配置文件中 关闭 (app/config/cms.php)
/*
|--------------------------------------------------------------------------
| Determines if the asset minifcation is enabled.
|--------------------------------------------------------------------------
|
| If the minifcation is enabled, combined assets are compressed (minified).
| It is recommended to disable the minification during the development, and
| enable it in the production mode.
|
*/
'enableAssetMinify' => true,