अमान्य टेम्प्लेट फ़ाइल - 2.2.6 से 2.2.7 या 2.3 तक अपग्रेड समस्या


16

मैंने २.२.६ संस्करण को २.२. but संस्करण में अपग्रेड किया है, लेकिन इसके नीचे मेरी वेबसाइट में त्रुटि दिखाई दे रही है।

1 exception(s):
Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp2/htdocs/magento2/demo1/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js'

Exception #0 (Magento\Framework\Exception\ValidatorException): Invalid template file: 'C:/xampp2/htdocs/magento2/demo1/vendor/magento/module-theme/view/frontend/templates/page/js/require_js.phtml' in module: '' block's name: 'require.js'
#0 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Element\Template.php(300): Magento\Framework\View\Element\Template->fetchView('C:/xampp2/htdoc...')
#1 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Element\AbstractBlock.php(667): Magento\Framework\View\Element\Template->_toHtml()
#2 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Result\Page.php(248): Magento\Framework\View\Element\AbstractBlock->toHtml()
#3 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\View\Result\Layout.php(170): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#4 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(58): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#5 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(138): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#6 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\Interception\Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#7 C:\xampp2\htdocs\magento2\demo1\generated\code\Magento\Framework\View\Result\Page\Interceptor.php(130): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#8 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\App\Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#9 C:\xampp2\htdocs\magento2\demo1\generated\code\Magento\Framework\App\Http\Interceptor.php(24): Magento\Framework\App\Http->launch()
#10 C:\xampp2\htdocs\magento2\demo1\vendor\magento\framework\App\Bootstrap.php(257): Magento\Framework\App\Http\Interceptor->launch()
#11 C:\xampp2\htdocs\magento2\demo1\index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#12 {main}

अगर मैं वेबसाइट को 2.6 से 2.3 में अपग्रेड करता हूं तो भी यही समस्या आ रही है।

क्या कोई उपाय है?


इस पोस्ट ने मेरी समस्या हल कर दी है।
संजय जेठवा

जवाबों:


23

अगर मैगेंटो के कुछ संस्करणों की तुलना में आपका मैग्नेटो इंस्टॉलेशन विंडोज़ पर चल रहा है, जैसे 2.2.7 में हमें इसके साथ फाइल विक्रेता / मैगनेटो / फ्रेमवर्क / व्यू / एलिमेंट / टेम्प्लेट / फाइल / वैलिडेटर . php के कोड को बदलना होगा।

protected function isPathInDirectories($path, $directories)
{
    $realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path));
    if (!is_array($directories)) {
        $directories = (array)$directories;
    }

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

और अब Magento एप्लिकेशन पुनः लोड करें।


1
पूरी तरह से काम किया। बहुत बहुत धन्यवाद। +1
शोएब मुनीर

1
बहुत बहुत धन्यवाद, आप मेरा दिन बचाएं। +1
जीशान खुवाजा

12

यह केवल आपके स्थानीय इंस्टॉलेशन की समस्या होनी चाहिए, क्योंकि आपका मैगनेटो उदाहरण विंडोज पर चल रहा है।

तो यह एक अस्थायी सुधार हो सकता है vendor\magento\framework\View\Element\Template\File\Validator.php

लाइन नंबर 114 पर जाएं और लाइन नंबर बदलें और नीचे की लाइन को बदलें

$filename = str_replace('\\', '/', $filename);

साथ में

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

नमस्कार @tho, मैंने इस समाधान को लागू कर दिया है और अब वेबसाइट लोड हो रही है लेकिन होम पेज और व्यवस्थापक लॉगिन खाली पृष्ठ दिखाता है।
संजय जेठवा

1
धन्यवाद दोस्त। मेरे लिए काम किया। +1
शोएब मुनीर

0

किसी भी मुद्दे के बिना Magento 2.2.6 के उन्नयन के लिए Magento 2.2.6, मैं सिर्फ Magento 2.2.6 से हमारी चल रही परियोजनाओं में से एक को 2.3.0 में नवीनीकृत किया है और कुछ भी चल रही परियोजना की कार्यक्षमता को नहीं तोड़ता है।

आप आसानी से Magento कमांड लाइन का उपयोग करके अपग्रेड कर सकते हैं,

आपको पुराने संस्करण से नवीनतम संस्करण Magento 2.3 में अपग्रेड करने के लिए चार चरणों का पालन करने की आवश्यकता है

For upgrade to Magento 2.3 You must require PHP 7.1.3+ or PHP 7.2.

आप केवल कम्पोज़र अपडेट कमांड का उपयोग करके केवल अपग्रेड नहीं कर सकते।

आशा है कि आप उपरोक्त चरणों में सहायक होंगे।


नमस्कार @ राकेश, मैं पीएचपी संस्करण 7.1.7 का उपयोग कर रहा हूं और लागू किया गया था श्री समाधान और वेबसाइट कोई त्रुटि नहीं दिखा रहा है। मेरा स्टोर विकास मोड में है। लेकिन खाली पृष्ठ दिखा रहा है।
संजय जेठवा

0

मेरे पास यह समस्या थी मेरे मामले में यह एक मॉड्यूल था जो मैंने पंजीकरण में उपयोग किया था। एफपी फ़ाइल

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Vendor_Module',
    isset($file) ? dirname($file) : __DIR__
);

समस्या इस पंक्ति में है " isset ($ file)? dirname ($ file): __DIR__" तो मैंने इसे " __DIR__" में बदल दिया , और अब यह काम करता है, मुझे आशा है कि यह मदद करता है।


0

मुझे पता है कि यह काफी पुरानी समस्या है और हर कोई पहले से ही इसका हल जानता है, लेकिन मैंने फिक्स के साथ क्विक कंपोजर-आधारित पैकेज बनाया, बस अपने सेंटो में चलाएं:

संगीतकार को आदर्शकोड / मैगेंटो 2-विंडोज़-संगतता की आवश्यकता होती है

मुझे उम्मीद है कि यह उपयोगी होगा।


0

मुझे लिनक्स पर वही त्रुटि मिली। यदि आप डेवलपर मोड में Magento चला रहे हैं, तो ऐसा हो सकता है क्योंकि Magento सहानुभूति को नहीं समझता है। सीमलिंक की अनुमति देने के लिए, बस निम्नलिखित sql निष्पादित करें:

update `core_config_data` set `value`='1' where `path`='dev/template/allow_symlink';

फिर भागो: bin/magento cache:flush

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.