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


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.