我使用的控制器级别从TYPO3 8新的页面渲染通过initializeAction添加扩展名特定CSS和JS文件:TYPO3:如何通过控制器初始化动作和页面渲染器添加css和js文件?
public function initializeAction()
{
$extPath = ExtensionManagementUtility::siteRelPath(
$this->request->getControllerExtensionKey()
);
$extJs = $extPath . 'Resources/Public/Js/ext_booking_manager.min.js';
$extCss = $extPath . 'Resources/Public/Css/ext_booking_manager.css';
/** @var PageRenderer $pageRenderer */
$pageRenderer = $this->objectManager->get(PageRenderer::class);
$pageRenderer->addCssFile($extCss);
$pageRenderer->addJsFooterFile(
$extJs, 'text/javascript', false
);
}
这是工作的罚款有时,但只是偶尔。这意味着,有时CSS文件和JS文件将被正确添加,有时如果我重新加载页面,那么文件将不会被正确添加。有什么不对?
对于旧版本一样TYPO3 7,我用类似这样的:
public function initializeAction()
{
$extPath = ExtensionManagementUtility::siteRelPath(
$this->request->getControllerExtensionKey()
);
$extJs = $extPath . 'Resources/Public/Js/ext_booking_manager.min.js';
$GLOBALS['TSFE']->getPageRenderer()->addJsFooterFile(
$extJs, 'text/javascript', false
);
parent::initializeAction();
}
但是这不会对TYPO3 8工作了。有什么建议么?
嗯好的,谢谢。这很好,我会检查出来,我也会改变js目录名称:)。 – Fox
好吧,我已经删除了资源逻辑并更新了我的扩展模板,并且FooterAssets部分正在工作,但似乎我得到了与使用页面渲染器时相同的奇怪行为。有时资产会被渲染,有时候不会。你有好主意吗? – Fox
你的行为是否总是被缓存?我期望未缓存的操作有问题。 –