স্থির সামগ্রী আপগ্রেড করার পরে লোড হচ্ছে না


25

Magento 2.1.0 থেকে Magento 2.1.3 (সুরকার ব্যবহার করে) এ স্ট্যাটিক সামগ্রীটি আপগ্রেড করার পরে আর লোড হচ্ছে না। ব্রাউজার কনসোলে আমি দেখতে পাচ্ছি যে সমস্ত ফাইল অনুপলব্ধ (404):

ফাইল অনুপলব্ধ প্রাকদর্শন

আমি নাম দিয়ে ডিরেক্টরি দেখতে পাচ্ছি না version*যে pubডিরেক্টরি।

আমি ইতিমধ্যে যা তৈরি করেছিলাম তবে এটি কোনও লাভ হয়নি:

  1. এতে সমস্ত অনুমতি সেট করুন 777তবে সাফল্য ছাড়াই।
  2. পরিষ্কার ক্যাশে
  3. অপসারণ pub/static/*
  4. স্থির সামগ্রী কয়েকবার পুনরায় জেনারেট করা
  5. অফিসিয়াল সংগ্রহস্থল থেকে .htaccessফাইলটি ( pub/staticডিরেক্টরিতে) প্রতিস্থাপন করে ।

অন্য তথ্য:

  • mod_rewrite সক্রিয় করা হয়
  • FollowSymLinksঅনুমোদিত (ডিফল্ট হোস্ট কনফিগারেশন এবং স্থানীয় .htaccess)
  • এই কনফিগারেশনটি 2.1.3 এ আপডেট করার আগে ম্যাজেন্টো 2.1.0 এর সাথে দুর্দান্ত কাজ করেছে
  • pub/static লিখনযোগ্য

কোন পরামর্শ?


আপনি কি স্থির সামগ্রী পুনরায় প্রচার করেছেন?
— ইমন

হ্যাঁ, আমি অনেকবার সাফল্য ছাড়াই এটি করেছি
— সিয়ারে উছুখলেবাউ

আমি একই সমস্যা আছে, upvated। আমার ক্ষেত্রে আমি এনগিনেক্স এবং একই কনফ ফাইলগুলি ব্যবহার করছি। আপডেটিংটি সুরকার ব্যবহার করে করা হয়েছিল, এবং @ সিয়ারে উচ্ছুলবাউ যেমন করেছিলেন তেমন পদক্ষেপগুলি করেছিলেন
— কেভিন চাভেজ

ওহে প্রিয়। হঠাৎ একই সমস্যা পেয়েছে, তবে অ্যাপাচি ব্যবহার করে। ক্লিয়ারিং পাব / স্ট্যাটিক এটি বন্ধ করে দিয়েছে এবং আমি এটি ঠিক করতে পারি না।
— ইমন

নীচে একটি সমাধান খুঁজে পেতে পারে।
— ইমন

উত্তর:


28

মূল সমস্যাটি ভুল লেখার কাজের কারণে হয়েছিল (যেমন @ মারিয়াস জানিয়েছেন)। RewriteBase আমার ডিরেক্টরিতে কোনও ছিল না pub/static/এবং অ্যাপাচি ফাইলগুলি খুঁজে পেতে পারেনি কারণ রুট ফোল্ডার থেকে তাদের অনুসন্ধান করা হয়েছিল। আমরা যুক্ত করার পরে: RewriteBase /pub/staticসবকিছু কাজ শুরু করে।

এটি কীভাবে কাজ করেছে:

এই ঠিকানার মাধ্যমে:

HTTP: //m2.uchuhlebov.web.ra/pub/static/version1481885888/frontend/Magento/luma/en_US/mage/requirejs/mixins.js

পুনরায় লেখার কাজ করা উচিত:

RewriteRule ^version.+?/(.+)$ $1 [L]

মূল ফোল্ডার থেকে লাইনটি শুরু হওয়ার সাথে সাথে:

/pub/static/version...

এটি কাজ করে নি এবং ফাইলটিতে পুনর্নির্দেশ করতে পারেনি, প্রয়োজনীয়।

বেস ছাড়াই পুনর্লিখন:

পুনর্লিখন কাজ করে না

বেস সহ পুনর্লিখন:

পুনর্লিখন কাজ

এখানে (পুনর্লিখন) .htaccessথেকে আমার ফাইলের একটি অংশ pub/static:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteBase /pub/static
    # Remove signature of the static files that is used to overcome the browser cache
    RewriteRule ^version.+?/(.+)$ $1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule .* ../static.php?resource=$0 [L]
</IfModule>

স্ট্যাটিক-ফাইলগুলির সংস্করণ অক্ষম করার পদ্ধতি:

আপনি যদি স্ট্যাটিক ফাইলগুলির সংস্করণ ব্যবহার করতে না চান তবে আপনি ম্যাজেন্টো প্রশাসক অঞ্চলে এই বৈশিষ্ট্যটি অক্ষম করতে পারবেন:

কনফিগ

নিম্নলিখিত মাইএসকিউএল কোয়েরি ব্যবহার করে ডিফল্ট সুযোগের জন্য এই সেটিংটি পরিবর্তন করা সম্ভব :

INSERT INTO `core_config_data`(`path`, `value`) VALUES ('dev/static/sign', 0) ON DUPLICATE KEY UPDATE `value`=0

তারপরে একটি কনফিগারেশন ক্যাশে সাফ করতে পরবর্তী কমান্ডটি কার্যকর করুন:

bin/magento cache:clean config

PS: আমার উত্তরটি অ্যাপাচি 2 ব্যবহারকারীদের পক্ষে আসল। আপনি ব্যবহার করে থাকেন nginx দেখতে এই উত্তর (@ কেভিন-javitz দ্বারা)


যদি dev/static/signবিদ্যমান থাকে তবে এটি sertোকান। INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0')
— duদুক মিতেশ

অ্যাপাচি 2 সিস্টেমে আপনার সাথে মোড_উইরাইটটি সক্ষম করতে হবে: - sudo a2enmod rewrite।
— ডালাস ক্লার্ক

8

আপনি যদি এনগিনেক্স চালাচ্ছেন তবে এখানে ঠিক আছে। আপনার সম্ভবত আপনার নিজস্ব কনফ ফাইল রয়েছে, আপনার এটির সাথে / স্ট্যাটিক / অংশটি আপডেট করতে হবে, তারা এর অংশটি বিশেষভাবে আপডেট করেছেন: ব্রাউজারের ক্যাশে বিভাগটি কাটিয়ে উঠতে ব্যবহৃত স্ট্যাটিক ফাইলগুলির স্বাক্ষর সরান:

location /static/ {
    # Uncomment the following line in production mode
    # expires max;

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
        rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        add_header Cache-Control "public";
        add_header X-Frame-Options "SAMEORIGIN";
        expires +1y;

        if (!-f $request_filename) {
            rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
        }
    }
    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
        add_header Cache-Control "no-store";
        add_header X-Frame-Options "SAMEORIGIN";
        expires    off;

        if (!-f $request_filename) {
           rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
        }
    }
    if (!-f $request_filename) {
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
    }
    add_header X-Frame-Options "SAMEORIGIN";
}

অতিরিক্ত দ্রষ্টব্য, আপনি যদি অ্যাপাচি ব্যবহার করছেন তবে আপনার পাব / স্ট্যাটিক / .htaccess লাইন 16 এ আছে তা নিশ্চিত করুন:RewriteRule ^version.+?/(.+)$ $1 [L]
— কেভিন চাভেজ

আপনার উত্তরের জন্য আপনাকে ধন্যবাদ, এটি আমাকে সমস্যার সঠিক সমাধানের দিকে ইঙ্গিত করেছে। আমি অ্যাপাচি ব্যবহার করি এবং সমাধানটি আলাদা, তবে যাইহোক আমি আপনার প্রতি কৃতজ্ঞ।
— সিয়ারে উছুখলেবাউ

আপনি একটি জীবন নিরাপদ! আমি মুগ্ধ হয়ে মাথা ঠেকিয়ে দিচ্ছিলাম! এটি আমার এনগিনেক্স ম্যাজেন্টো ২.১.৩
— চুডোস

6

ডাটাবেসে যান এবং কোর_কনফিগ_ডেটা টেবিলটিতে একটি সারি sertোকান:

INSERT INTO core_config_data (scope, scope_id, path, value) VALUES ('default', 0, 'dev/static/sign', '0');

অসাধারণ!! ধন্যবাদ.
— l00k

4

version*ফোল্ডারে কোনও ফোল্ডার থাকা উচিত নয় static।
এটি সম্ভবত ঘটবে কারণ আপনার মোডে মোড_আরাইট সক্ষম করা নেই।
পথটি pub/static/version1234/some/asset.jsআবার লিখতে হবে pub/static/some/asset.js। সংস্করণ জিনিসটি কেবল ব্রাউজারের ক্যাশে সমাপ্তির জন্য।


আমি যাচাই করে দেখছি mod_rewrite এবং এটি সক্ষম করা হয়েছে: [root@web www]# httpd -M | grep "rewrite" rewrite_module (shared) Syntax OK.htaacess এ এটিও সক্ষম করা হয়েছে
— সিয়ারে উছুখলেবাউ

FollowSymLinksএটি অনুমোদিত কিনা তা নিশ্চিত করুন । গিথুব থেকে সর্বশেষতম সংস্করণ ইনস্টল করার পরে আমার সাথে এটি ঘটেছিল এবং মোড_আররাইট এবং ফলোসিমলিংক্স নিয়ে আমার সমস্যা হয়েছিল।
— মারিয়াস

পুনর্লিখন বিভাগটিতে FollowSymLinksসেট করা আছে Options +FollowSymLinksএবং আপ-ডেটিংয়ের আগে একই কনফিগারেশনটিতে কোনও সমস্যা ছিল না :(
— সিয়ারে উছুখলেবাউ

4

দেখে মনে হচ্ছে যে ২.১.৩ রিলিজটি Stores => Configuration => Developer => Static Files Settings => Sign Static Filesহ্যাঁতে সেট করা হয়েছে তার ডিফল্ট মান ধরেছে ।

সুতরাং পুনরায় লেখাগুলি পরিবর্তনের পরিবর্তে, এই বৈশিষ্ট্যটি নং তে সেট করা সম্ভব

যদি অ্যাডমিনের কাছ থেকে এটি করা সম্ভব না হয়, কারণ অ্যাডমিন অগ্রভাগের সম্পদগুলি লোড করতে ব্যর্থ হয়, core_config_dataটেবিলে এই সেটিংটি পরিবর্তন / যুক্ত করুন :

সুযোগ: ডিফল্ট
স্কোপ_আইডি: 0 টি
পথ: ডিভ / স্ট্যাটিক / সাইন
মান: 0

এই সমস্যাটি গিথুবেও উল্লেখ করা হয়েছে: https://github.com/magento/magento2/issues/7869


2

আপনি যদি আপাচি ব্যবহার করছেন আপনি অবশ্যই পাব / স্ট্যাটিক থেকে .htaccess মুছবেন না। আপনি এখানে প্রতিস্থাপন পেতে পারেন ।


ধন্যবাদ. আমি ইতিমধ্যে সেই ফাইলটি প্রতিস্থাপন করেছি, তবে সমস্যাটি ভুল ছিল RewriteBase।
— সিয়ারে উখখলেবাউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.