web-dev-qa-db-fra.com

Page d'administration vierge sur Magento 2.3.0 CE dans localhost

J'ai installé Magento 2.3 sur ma machine locale, l'installation se passe bien. Je peux accéder à ma boutique à localhost/magento. J'ai essayé d'accéder à ma page d'administration localhost/magento/admin_pogi mais cela me donne une page vierge et redirigée vers l'url http://localhost/magento/admin_pogi/admin/index/index/key/a062e79f617010c42b07d662103d5142cd9bbe86314fb54da3e4cb5542b11eee/.

Ce que j'ai essayé jusqu'à présent, c'est d'activer le mode de développement, et je vois cette erreur sur ma page d'administration:

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}
7
user8143979

Ce serait un bug qui corrige ce commit . L'auteur a changé $path En

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

qui appelle simplement realpath() sur $path mais qui pourrait changer les séparateurs de répertoire sur le $path qui étaient auparavant affectés par

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

Sur un système d'exploitation Windows, cela annulera les modifications ci-dessus str_replace Afin qu'un chemin comme

D:/Magento2.3/vendor/magento

sera canonisé dans sa version spécifique à Windows:

D:\Magento2.3\vendor\magento

et cela n'aboutira pas à une comparaison réussie au sein de la méthode isPathInDirectories() de la classe Magento\Framework\View\Element\Template\File\Validator:

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

Solution

Actuellement, nous pouvons opter pour un changement rapide et sale dans la boucle foreach ci-dessus afin de pouvoir exécuter notre magento sans aucun problème:

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

C'est le problème principal de Magento 2.3.0. Pour résoudre ce problème, vous devez modifier le code dans le fichier principal de Magento.

Allez dans le chemin / vendor/magento/framework/View/Element/Template/File/Validator.php Dans ce fichier, trouvez:

$realPath = $this->fileDriver->getRealPath($path);

Remplacer par:

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

Étape 01. Accédez à ce répertoire C:\xampp\htdocs\magento\vendor\magento\framework\View\Element\Template\File

Étape 02. Ouvrez le fichier validator.php Ligne de commentaire 139 ($ realPath = $ this-> fileDriver-> getRealPath ($ path);) Ajoutez ce code

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

Et aussi un certain temps de chargement de la page d'administration mais pas de chargement de css Alors, comment résoudre ce problème

Étape _01 Allez dans ce répertoire App/etc/di.xml

étape 02 Trouver cette ligne

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

Étape 03 changez ceci comme ci-dessous

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

Et aussi un certain temps, la page d'accueil ne se charge pas correctement, alors comment résoudre

Étape 01 Accédez à ce répertoire var/cache

Étape 02 Supprimer les fichiers de cache et actualiser votre page

1
pubudu sachintha