安装后Magento 2无效的模板异常

时间:2018-12-10 08:04:43

标签: magento exception admin magento2

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

2 个答案:

答案 0 :(得分:0)

您可以从项目根目录执行composer更新,它将更新所有缺少的依赖项。

除此之外,您还可以刷新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

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

答案 1 :(得分:0)

是的,这就是 Windows 的问题。 Windows 使用 "" 作为分隔符,数组 "directories" 包含以 "/" 作为分隔符的条目,因此检查将始终失败。所以你需要通过替换核心文件中的分隔符来解决这个问题:

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

function isPathInDirectories 替换 isPathInDirectories 函数中的以下代码

$realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));