在 TYPO3 中禁用文件压缩 'be:container'
Disabling file compression in TYPO3 'be:container'
我一直在开发 TYPO3 扩展。在设计后端模块时,我观察到我的 css 和 js 外部文件包含在
<f:be.container loadJQuery="true" includeCssFiles="{0:'https://ajax.googleapis.com/****'}" includeJsFiles="{0:'https://ajax.googleapis.com/****'}" >
被压缩,结果设计变得一团糟。
压缩是一个好行为。我承认。但是如何在后端容器中或至少在外部文件中避免它……??为答案徘徊了2天
从代码来看,使用 be.container 视图助手(因为它直接调用 $pageRenderer->addCssFile,没有选项)不容易实现。
您可以做的是添加一个自己的 viewhelper 来公开所有 addCssFile 选项。例如,您的 viewhelper 可能如下所示:
class AddCssFileViewHelper extends AbstractViewHelper
{
/**
* @var PageRenderer
*/
protected $pageRenderer;
/**
* @param PageRenderer $pageRenderer
*/
public function injectPageRenderer(PageRenderer $pageRenderer)
{
$this->pageRenderer = $pageRenderer;
}
/**
* Initialize arguments.
*
* @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument('cssFile', 'string', 'path to your file', false, '');
$this->registerArgument('compress', 'bool', 'specifies whether to compress or not, default: true', false, true);
}
public function render()
{
$this->pageRenderer->addCssFile($this->arguments['cssFile'], 'stylesheet', 'all', '', $this->arguments['compress']);
}
}
我一直在开发 TYPO3 扩展。在设计后端模块时,我观察到我的 css 和 js 外部文件包含在
<f:be.container loadJQuery="true" includeCssFiles="{0:'https://ajax.googleapis.com/****'}" includeJsFiles="{0:'https://ajax.googleapis.com/****'}" >
被压缩,结果设计变得一团糟。 压缩是一个好行为。我承认。但是如何在后端容器中或至少在外部文件中避免它……??为答案徘徊了2天
从代码来看,使用 be.container 视图助手(因为它直接调用 $pageRenderer->addCssFile,没有选项)不容易实现。
您可以做的是添加一个自己的 viewhelper 来公开所有 addCssFile 选项。例如,您的 viewhelper 可能如下所示:
class AddCssFileViewHelper extends AbstractViewHelper
{
/**
* @var PageRenderer
*/
protected $pageRenderer;
/**
* @param PageRenderer $pageRenderer
*/
public function injectPageRenderer(PageRenderer $pageRenderer)
{
$this->pageRenderer = $pageRenderer;
}
/**
* Initialize arguments.
*
* @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception
*/
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument('cssFile', 'string', 'path to your file', false, '');
$this->registerArgument('compress', 'bool', 'specifies whether to compress or not, default: true', false, true);
}
public function render()
{
$this->pageRenderer->addCssFile($this->arguments['cssFile'], 'stylesheet', 'all', '', $this->arguments['compress']);
}
}