本地主机中 Magento 2.3.0 CE 上的空白管理页面
Blank admin page on Magento 2.3.0 CE in localhost
我已经在本地机器上安装了 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}
这将是一个解决 this commit 的错误。作者将 $path
更改为
$this->fileDriver->getRealPath($path)
这只是在 $path
上调用 realpath()
,但这可能会更改 $path
上先前受
影响的目录分隔符
#/vendor/magento/framework/View/Element/Template/File/Validator.php:114
$filename = str_replace('\', '/', $filename);
在 Windows OS 这将恢复上述 str_replace
的更改,以便像
这样的路径
D:/Magento2.3/vendor/magento
将规范化为其 Windows 特定版本:
D:\Magento2.3\vendor\magento
这不会导致 Magento\Framework\View\Element\Template\File\Validator
isPathInDirectories()
方法中的成功比较 class:
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;
}
}
这是Magento 2.3.0的核心问题。
要解决此问题,您必须更改 Magento 核心文件中的代码。
转到路径 /vendor/magento/framework/View/Element/Template/File/Validator.php 在这个文件中找到:
$realPath = $this->fileDriver->getRealPath($path);
替换为:
$realPath = str_replace('\', '/', $this->fileDriver->getRealPath($path));
步骤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
删除缓存文件并刷新页面
我已经在本地机器上安装了 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}
这将是一个解决 this commit 的错误。作者将 $path
更改为
$this->fileDriver->getRealPath($path)
这只是在 $path
上调用 realpath()
,但这可能会更改 $path
上先前受
#/vendor/magento/framework/View/Element/Template/File/Validator.php:114
$filename = str_replace('\', '/', $filename);
在 Windows OS 这将恢复上述 str_replace
的更改,以便像
D:/Magento2.3/vendor/magento
将规范化为其 Windows 特定版本:
D:\Magento2.3\vendor\magento
这不会导致 Magento\Framework\View\Element\Template\File\Validator
isPathInDirectories()
方法中的成功比较 class:
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;
}
}
这是Magento 2.3.0的核心问题。 要解决此问题,您必须更改 Magento 核心文件中的代码。
转到路径 /vendor/magento/framework/View/Element/Template/File/Validator.php 在这个文件中找到:
$realPath = $this->fileDriver->getRealPath($path);
替换为:
$realPath = str_replace('\', '/', $this->fileDriver->getRealPath($path));
步骤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 删除缓存文件并刷新页面