Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
317 views
in Technique[技术] by (71.8m points)

javascript - Blank admin page on Magento 2.3.0 CE in localhost

I have installed Magento 2.3 on my local-machine, installation goes fine. I can access my store at localhost/magento. I tried to access my admin page localhost/magento/admin_pogi but it gives me a blank page and redirected to the url http://localhost/magento/admin_pogi/admin/index/index/key/a062e79f617010c42b07d662103d5142cd9bbe86314fb54da3e4cb5542b11eee/.

What I have tried so far is to enable development mode, and I see this error on my admin page:

1 exception(s):
Exception #0 (MagentoFrameworkExceptionValidatorException): 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 (MagentoFrameworkExceptionValidatorException): 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:xampphtdocsmagentovendormagentoframeworkViewElementTemplate.php(301): 
MagentoFrameworkViewElementTemplate->fetchView('C:/xampp/htdocs...')
#1 C:xampphtdocsmagentovendormagentoframeworkViewElementAbstractBlock.php(668): MagentoFrameworkViewElementTemplate->_toHtml()#2 
C:xampphtdocsmagentovendormagentoframeworkViewResultPage.php(249): 
MagentoFrameworkViewElementAbstractBlock->toHtml()
#3 
C:xampphtdocsmagentovendormagentoframeworkViewResultLayout.php(171): MagentoFrameworkViewResultPage->render(Object(MagentoFrameworkAppResponseHttpInterceptor))
#4 C:xampphtdocsmagentogeneratedcodeMagentoBackendModelViewResultPageInterceptor.php(193): MagentoFrameworkViewResultLayout->renderResult(Object(MagentoFrameworkAppResponseHttpInterceptor))
#5 C:xampphtdocsmagentovendormagentoframeworkAppHttp.php(139): MagentoBackendModelViewResultPageInterceptor->renderResult(Object(MagentoFrameworkAppResponseHttpInterceptor))
#6 C:xampphtdocsmagentogeneratedcodeMagentoFrameworkAppHttpInterceptor.php(24): MagentoFrameworkAppHttp->launch()
#7 C:xampphtdocsmagentovendormagentoframeworkAppBootstrap.php(258): MagentoFrameworkAppHttpInterceptor->launch()
#8 C:xampphtdocsmagentoindex.php(39): MagentoFrameworkAppBootstrap->run(Object(MagentoFrameworkAppHttpInterceptor))
#9 {main}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

This would be a bug that addresses this commit. Author changed $path to

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

which is simply calling realpath() on $path but that might change directory separators on the $path that previously were affected by

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

On a Windows OS this will revert changes of above str_replace so that a path like

D:/Magento2.3/vendor/magento

will be canonicalized to its Windows specific version:

D:Magento2.3vendormagento

and this will not result in a successful comparison within isPathInDirectories() method of MagentoFrameworkViewElementTemplateFileValidator class:

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

Solution

Currently we can go for a dirty quick change in the above foreach loop so that we can run our magento with no further problems on this:

#/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;
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...