ローカルマシンに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()
メソッド内での正常な比較にはなりません:
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キャッシュファイルを削除してページを更新する