本地主机上Magento 2.3.0 CE上的空白管理页面

时间:2018-11-30 05:43:55

标签: javascript php magento xampp magento2

我已经在本地计算机上安装了Magento 2.3,安装正常。我可以通过localhost/magento访问我的商店。我试图访问管理页面localhost/magento/admin_pogi,但它给了我一个空白页面,并重定向到了URL http://localhost/magento/admin_pogi/admin/index/index/key/a062e79f617010c42b07d662103d5142cd9bbe86314fb54da3e4cb5542b11eee/

到目前为止,我一直尝试启用开发模式,并且在管理页面上看到此错误:

1 exception(s):
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid 
template file: 'C:/xampp/htdocs/magento/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/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\vendor\magento\framework\View\Element\Template.php(301): 
Magento\Framework\View\Element\Template->fetchView('C:/xampp/htdocs...')
#1 C:\xampp\htdocs\magento\vendor\magento\framework\View\Element\AbstractBlock.php(668): Magento\Framework\View\Element\Template->_toHtml()#2 
C:\xampp\htdocs\magento\vendor\magento\framework\View\Result\Page.php(249): 
Magento\Framework\View\Element\AbstractBlock->toHtml()
#3 
C:\xampp\htdocs\magento\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\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\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\generated\code\Magento\Framework\App\Http\Interceptor.php(24): Magento\Framework\App\Http->launch()
#7 C:\xampp\htdocs\magento\vendor\magento\framework\App\Bootstrap.php(258): Magento\Framework\App\Http\Interceptor->launch()
#8 C:\xampp\htdocs\magento\index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#9 {main}

3 个答案:

答案 0 :(得分:11)

这将是一个解决this commit的错误。作者已将$path更改为

$this->fileDriver->getRealPath($path)

这只是在realpath()上调用$path,但可能会更改先前受{p1>影响的$path上的目录分隔符

#/vendor/magento/framework/View/Element/Template/File/Validator.php:114
$filename = str_replace('\\', '/', $filename);

在Windows操作系统上,这将还原str_replace以上的更改,从而使路径类似

D:/Magento2.3/vendor/magento

将规范化为Windows特定版本:

D:\Magento2.3\vendor\magento

,这将不会在isPathInDirectories()类的Magento\Framework\View\Element\Template\File\Validator方法内成功进行比较:

foreach ($directories as $directory) {
    if (0 === strpos($realPath, $directory)) {
        return true;
    }
}

解决方案

当前,我们可以在上面的foreach循环中进行快速的更改,以便我们可以运行magento而不会有任何其他问题:

#/vendor/magento/framework/View/Element/Template/File/Validator.php:139
foreach ($directories as $directory) {
    // Add this line
    $realDirectory = $this->fileDriver->getRealPath($directory);
    // and replace `$directory` with `$realDirectory`
    if (0 === strpos($realPath, $realDirectory)) {
        return true;
    }
}

答案 1 :(得分:2)

这是Magento 2.3.0的核心问题。 要解决此问题,您必须更改Magento核心文件中的代码。

转到路径 /vendor/magento/framework/View/Element/Template/File/Validator.php 在此文件中找到:

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

替换为:

{{1}}

答案 2 :(得分:1)

步骤01。 转到这个目录 C:\ xampp \ htdocs \ magento \ vendor \ magento \ framework \ View \ Element \ Template \ File

步骤02。 打开文件validator.php 注释行139($ realPath = $ this-> fileDriver-> getRealPath($ path);) 添加此代码

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

还有一些时间会加载管理页面,但不会加载CSS,所以如何解决此问题

步骤_01 转到此目录 App / etc / di.xml

步骤02 找到这行

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>

步骤03 如下更改

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\copy</item>

还有一段时间主页无法正确加载,因此如何解决

步骤01 转到此目录 var / cache

步骤02 删除缓存文件并刷新页面