Magento 2安装后模板无效异常

问题描述 投票:0回答:4

我今天在本地主机上安装了 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,不知道问题是什么或如何解决。谁能告诉我该怎么做才能解决这个问题?

magento exception admin magento2
4个回答
1
投票

您可以从项目根目录执行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

现在清理浏览器缓存并重新加载页面。


0
投票

是的,这是windows的问题。 Windows使用“”作为分隔符,数组“directories”包含以“/”作为分隔符的条目,因此检查总是会失败。因此,您需要通过替换核心文件中的分隔符来解决此问题:

Magento\Framework\View\Element\Template\File\Validator

function isPathInDirectories 替换 isPathInDirectories function

中的以下代码
$realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));

0
投票

版本升级后如何修复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;

}

0
投票

对于那些寻求 2024 年 Windows 上 magento >= 2.4.5 修复的人 +

这是真正的修复https://mage2.pro/t/topic/6339

© www.soinside.com 2019 - 2024. All rights reserved.