我今天在本地主机上安装了 Magento 2.0 平台。完成所有设置和安装后,当我尝试打开管理面板时,它显示棕色空白屏幕。当我切换到开发人员模式时,它显示 require_js.phtml 的模板无效错误。完整的错误是:
1 exception(s):
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp/htdocs/magento_demo/vendor/magento/module-backend/view/adminhtml/templates/page/js/require_js.phtml' in module: 'Magento_Backend' block's name: 'require.js'
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp/htdocs/magento_demo/vendor/magento/module-backend/view/adminhtml/templates/page/js/require_js.phtml' in module: 'Magento_Backend' block's name: 'require.js'
#0 C:\xampp\htdocs\magento_demo\vendor\magento\framework\View\Element\Template.php(301): Magento\Framework\View\Element\Template->fetchView('C:/xampp/htdocs...')
#1 C:\xampp\htdocs\magento_demo\vendor\magento\framework\View\Element\AbstractBlock.php(668): Magento\Framework\View\Element\Template->_toHtml()
#2 C:\xampp\htdocs\magento_demo\vendor\magento\framework\View\Result\Page.php(249): Magento\Framework\View\Element\AbstractBlock->toHtml()
#3 C:\xampp\htdocs\magento_demo\vendor\magento\framework\View\Result\Layout.php(171): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#4 C:\xampp\htdocs\magento_demo\generated\code\Magento\Backend\Model\View\Result\Page\Interceptor.php(193): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#5 C:\xampp\htdocs\magento_demo\vendor\magento\framework\App\Http.php(139): Magento\Backend\Model\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#6 C:\xampp\htdocs\magento_demo\generated\code\Magento\Framework\App\Http\Interceptor.php(24): Magento\Framework\App\Http->launch()
#7 C:\xampp\htdocs\magento_demo\vendor\magento\framework\App\Bootstrap.php(258): Magento\Framework\App\Http\Interceptor->launch()
#8 C:\xampp\htdocs\magento_demo\index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#9 {main}
我以前从未使用过 Magento,不知道问题是什么或如何解决。谁能告诉我该怎么做才能解决这个问题?
您可以从项目根目录执行composer update,它将更新所有缺少的依赖项。
除此之外,您可以刷新 Magento 缓存并重新部署静态内容,请按照以下步骤操作:
1) php bin/magento cache:flush or (sudo rm -rf <magento-root>/var/generated/* <magento-root>/pub/static/*)
2) php bin/magento setup:static-content:deploy
现在清理浏览器缓存并重新加载页面。
是的,这是windows的问题。 Windows使用“”作为分隔符,数组“directories”包含以“/”作为分隔符的条目,因此检查总是会失败。因此,您需要通过替换核心文件中的分隔符来解决此问题:
Magento\Framework\View\Element\Template\File\Validator
function isPathInDirectories 替换 isPathInDirectories function
中的以下代码$realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));
版本升级后如何修复Magento2中的无效模板文件错误?
如果是Windows,只需替换vendor/magento/framework/view/element/template/file/validator.php中的isPathInDirectories函数即可
protected function isPathInDirectories($path, $directories)
{
$realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));
if (!is_array($directories)) {
$directories = (array)$directories;
}
foreach ($directories as $directory) {
if (0 === strpos($realPath, $directory)) {
return true;
}
}
return false;
}
对于那些寻求 2024 年 Windows 上 magento >= 2.4.5 修复的人 +