ম্যাজেন্টো 2 পাব স্ট্যাটিক ফাইলগুলির জন্য ডিফল্ট বা উত্পাদন মোডে সিমলিংক ব্যবহার করে


11

পরিস্থিতি: আমি ম্যাজেন্টো 2 এর কয়েকটি ফ্রি ট্রায়াল চালাচ্ছি এবং ভিপিএসে সীমিত এইচডি স্পেস রয়েছে। এই কারণে এইচডি স্পেসটি কেটে ফেলার জন্য আমি ডিগ্রি বা উত্পাদন মোডে ম্যাজেন্টো ফাইলগুলি সিমলিংক করতে চাই। আমি লক্ষ্য করেছি যে একটি ডিফল্ট ম্যাজেন্টো 2 ইনস্টল প্রায় 420 এমবি হয় সাইটটি প্রথম চালিত হওয়ার পরে এটি প্রায় 770 এমবিতে যায় সুতরাং এর 350 এমবি ফাইল অনুলিপি করা হয়।

আমি সংশোধন করেছি: অ্যাপ / ইত্যাদি / di.xML লাইন:

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

প্রতি

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

এটি ঠিকঠাক কাজ করে এবং ডিফল্ট মোডে থাকা অবস্থায়ও সাইটটি সঠিকভাবে সিমলিঙ্কগুলি তৈরি করবে। তবে বিষয়টি হ'ল সিএসএস তৈরি করা হয়নি বা জেএস-অনুবাদ.json ফাইলগুলি তৈরি করা উচিত তবে তা নয়:

/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-m.css

/pub/static/version1488209436/frontend/Magento/luma/en_US/css/styles-l.css

/pub/static/version1488209436/frontend/Magento/luma/en_US/css/print.css

/pub/static/version1488209436/frontend/Magento/luma/en_US/js-translation.json

সুতরাং প্রশ্নটি হ'ল: ডিফল্ট বা উত্পাদন মোডে এবং সিমলিংক ব্যবহার করার সময় আমি কীভাবে ম্যাগেন্টোও এই ফাইলগুলি তৈরি করতে পারি?


সম্ভবত আপনি সিএসএস ইস্যুটির জন্য গুল্প বা গ্রান্ট ব্যবহার করতে পারেন: magento.stackexchange.com/questions/162906/… এবং জেএস -ট্রান্সলেশন.জসন ফাইলের বিভিন্ন মোডে সন্ধান করতে পারেন? gist.github.com/antonmakarenko/7538216
B00MER

ধন্যবাদ, যদি কেউ আমাকে ধাপে ধাপে দিতে পারে এবং এটি কার্যকর হয় তা যাচাই করতে পারে তবে আমি এটি +100 এ করব।
কেভিন শ্যাভেজ

পাব / স্ট্যাটিক ফোল্ডারের ভিতরে একটি .htaccess ফাইল রয়েছে যা ইউআরএলটি পুনরায় লেখার জন্য এবং URL থেকে 'সংস্করণ 1488209436' মুছে ফেলার জন্য এবং ব্যবহারকারীর বান্ধব ইউআরএল সরবরাহ করার জন্য দায়ী। .Htaccess যদি সঠিকভাবে কাজ না করে তবে কেবল এই ধরণের সমস্যা দেখা দেয়।
টনময়

আপনাকে ধন্যবাদ টনময় কিন্তু এটি এর সাথে মোটেই সম্পর্কিত নয়। সমস্যাটি হ'ল ফাইলগুলি উত্পন্ন হয় না কারণ আমি ডিফল্ট / উত্পাদন মোডে কপির পরিবর্তে সিমলিংক ব্যবহার করি।
কেভিন শ্যাভেজ

যেহেতু 4 টি ফাইল আপনি ম্যানুয়ালি বা একটি .sh স্ক্রিপ্টে এই সিমলিংকগুলি তৈরি করতে পারেন তার চেয়ে বেশি 4 টি ফাইল রয়েছে।
অস্পষ্ট

উত্তর:


5

app/etc/di.xml: এতে নতুন আইটেম যুক্ত করুন stategiesList:

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
    <arguments>
        <argument name="strategiesList" xsi:type="array">
            <item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
            <item name="default" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
/* ++ */    <item name="asset" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
        </argument>
    </arguments>
</virtualType>

ধরে pub/staticনিই যে আপনি বিকাশকারী মোডে আছেন কেবলমাত্র সামগ্রীগুলি মুছুন এবং ব্রাউজারে আপনার পৃষ্ঠায় যান - ম্যাজেন্টো স্থির সামগ্রীটিকে পুনরায় তৈরি করবে।

ম্যাজেন্টো ২.১.৪ এ আমার জন্য কাজ করেছেন (স্টাইল-এম.এস.এসএস উত্পন্ন হয়েছে এবং অন্যান্য ফাইলগুলি সংযুক্ত হয়েছে)।

সমস্ত যাদু এর মধ্যে ঘটে vendor/magento/framework/App/View/Asset/MaterializationStrategy/Factory.php:

public function create(Asset\LocalInterface $asset)
{   
    if (empty($this->strategiesList)) {
        $this->strategiesList[] = $this->objectManager->get(self::DEFAULT_STRATEGY);
    }   

    foreach ($this->strategiesList as $strategy) {
        if ($strategy->isSupported($asset)) {
            return $strategy;
        }   
    }   

    throw new \LogicException('No materialization strategy is supported');
}   

ম্যাজেন্টো কেবল stategiesListআইটেমগুলির মধ্য দিয়ে লুপ করে এবং প্রথম অবস্থা ব্যবহার করে যা সম্পদ সমর্থন করে।

কীভাবে এটি উত্পাদন মোডে কাজ করবেন?

দাবি অস্বীকার: এই হ্যাকটিতে মূল ফাইল সম্পাদনা রয়েছে। হুঁশিয়ার।

সমস্ত ম্যাজেন্টো ২.১.৪ এ পরীক্ষা করা হয়েছে

  1. স্ট্যাটিক ফাইলগুলি থেকে সংস্করণ নম্বরটি সরিয়ে দিন Stores > Configuration > Advanced > Developer > Static Files Settings > No
  2. সম্পাদনা করুন vendor/magento/framework/App/StaticResource.phpএবং launchফাংশনটি এর মতো দেখায়:

    public function launch()
    {   
    // disabling profiling when retrieving static resource
    \Magento\Framework\Profiler::reset();
    $appMode = $this->state->getMode();
    /*if ($appMode == \Magento\Framework\App\State::MODE_PRODUCTION) {
        $this->response->setHttpResponseCode(404);
    } else {*/
        $path = $this->request->get('resource');
        $params = $this->parsePath($path);
        $this->state->setAreaCode($params['area']);
        $this->objectManager->configure($this->configLoader->load($params['area']));
        $file = $params['file'];
        unset($params['file']);
        $asset = $this->assetRepo->createAsset($file, $params);
        $this->response->setFilePath($asset->getSourceFile());
        $this->publisher->publish($asset);
    /*}*/
    return $this->response;
    }   
    
  3. সামগ্রীগুলি মুছুন pub/staticএবং একটি ব্রাউজারে আপনার স্টোর ইউআরএল দেখুন।


ধন্যবাদ এই পুরোপুরি কাজ! Di.xml এ ঠিক সেই এক লাইন! এটি কীভাবে কাজ করে সে সম্পর্কে আপনার ব্যাখ্যাটিরও আমি প্রশংসা করি। এখন ইনস্টলটি 770mb এর পরিবর্তে 482mb 2 যা আমার ভিপিএস ফ্রি ট্রায়াল সার্ভারকে আপগ্রেড না করে আমার অর্থ সাশ্রয় করবে।
কেভিন চাভেজ

আপনি খুব স্বাগত স্যার আমি আপনার জন্য এটি কাজ করে খুশি।
কনস্ট্যান্টিন গেরাসিমভ

এটি কি কেবলমাত্র স্ট্যাটিকআরসোর্স.পিএফপি সংশোধন করে মূল অ্যাপ / etc / di.xml যোগ না করে রাখে <item name="asset" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item> ?
লুস্ক্কু

0

প্রোডাকশন মোডে না থাকাকালীন ম্যাজেন্টো 2 কিছু স্থিতিশীল সংস্থার জন্য সিমলিংক তৈরি করার চেষ্টা করবে। নিম্নলিখিত ব্যবহার করে আপনি সেই আচরণটি পরিবর্তন করতে পারেন।

  1. অ্যাপ্লিকেশন / ইত্যাদি / ডি.এক্সএমএল খুলুন এবং ভার্চুয়াল টাইপ নাম = "বিকাশকারী মেটেরিয়ালাইজেশন" বিভাগটি সন্ধান করুন। এই বিভাগে আপনি একটি আইটেমের নাম পাবেন = "ভিউ_প্রিয়োসেসড" যা পরিবর্তন বা মুছতে হবে। আপনি ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অ্যাপ্লিকেশন \ দেখুন \ সম্পদ \ ধাতবকরণ স্ট্র্যাটেজি \ সিমিলিঙ্কটিকে ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অ্যাপ্লিকেশন \ ভিউ \ সম্পদ \ ম্যাটেরিয়ালাইজেশনস্ট্রেজি \ অনুলিপি থেকে বিষয়বস্তু পরিবর্তন করে এটিকে সংশোধন করতে পারেন

  2. পাব / স্থির অধীনে ফাইলগুলি মুছুন। দয়া করে .htaccess ফাইলটি মুছবেন না।


1
আমি মনে করি না আপনি আমার প্রশ্নটি বুঝতে পেরেছেন, আমি সীমিত সার্ভার রিসোর্সগুলির সাথে স্থান বাঁচাতে "কপি" করতে চাই না "সিমলিংক"।
কেভিন শ্যাভেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.