অ্যাপাচি: প্রি-প্যাকড জিপিপযুক্ত ফাইলগুলি প্রেরণ করুন


8

আমি আপাচি তারের উপর দিয়ে জিপিপযুক্ত স্থিতিশীল ফাইলগুলি প্রেরণ করতে চাই, তবে এপাচিও সর্বদা সেগুলি বারবার জিপ না করুক। সুতরাং আমি ভেবেছিলাম যদি এটি উপস্থিত থাকে তবে .gz ফাইল সরবরাহ করা সম্ভব হবে না। এই সেট আপ:

ফাইল গঠন:

static/
|
|--- style.css
|
\--- style.css.gz

এবং একটি .htaccess এ নিম্নলিখিত:

মোড_উইরাইট রুল:

RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]

এবং এই সেটিং:

AddEncoding x-gzip .gz

প্রকৃতপক্ষে, অনুরোধটি যদি যায় তবে .gz ফাইলের পরিবর্তে .gz ফাইলটি প্রেরণ করা হওয়ায় এটি ইনফার কাজ করে /static/style.css। সমস্যাটি কেবলমাত্র, ফাইলটি "অ্যাপ্লিকেশন / এক্স-জিজিপ" হিসাবে বিতরণ করা হয় এবং "পাঠ্য / সিএসএস" হিসাবে নয়। মোড_উইরাইটের টি পতাকা ব্যবহার করে এটি পরিবর্তন হয় না। উভয়ই স্পষ্ট করে না

AddType text/css .css

কারও কি ধারণা আছে, আমি কীভাবে পছন্দসই আচরণ করতে পারি? বা কোনও কারণেই আমি গণনা করি না এটি অপ্রয়োজনীয়?

সম্পাদনা: অতিরিক্ত অসুবিধা আছে: জিপিপ সমর্থন ছাড়াই ক্লায়েন্টদের কাছে মূল ফাইলটি পাঠানো। এটি কীভাবে কাজ করতে পারে তার কোনও ধারণা আছে?


আমি বিস্মিত হয়েছি এটি আরও সুস্পষ্ট নয়, কারণ এটি এমন কোনও ওয়েব সার্ভারের পাগল বলে মনে হয় যা এটি করে না। আমি মনে করি আইআইএসের প্রথম অ্যাক্সেসে স্থির ফাইলগুলির গিজিপযুক্ত কপিগুলি ক্যাশে করার একটি সিস্টেম রয়েছে has mod_deflate এই জাতীয় বৈশিষ্ট্যটির উল্লেখ করে না।
rjmunro

উত্তর:


5

জিজিপ গ্রহণ করে না এমন ব্রাউজারগুলিতে সঠিক সংস্করণটি প্রেরণের জন্য একটি সমাধান হ'ল এর লাইনে কিছু হবে:

RewriteCond %{HTTP:Accept-Encoding} !gzip
...your rules here...

এছাড়াও, ধরনটি পরিবর্তন করার আরও একটি উপায় রয়েছে, যথা:

<FilesMatch .*\.css.gz>
    ForceType text/css
</FilesMatch>

<FilesMatch .*\.js.gz>
    ForceType text/javascript
</FilesMatch>

আছে HTH।


শীতল ধন্যবাদ! % {এইচটিটিপি: ...} জিনিসের জন্য কি ডক আছে? অ্যাপাচি ২.২ এর রাইরাইটকন্ড বিভাগে আমি এর কোনও উল্লেখ দেখতে পাইনি। ফাইলম্যাচটি আমার কাছে আরেকটি ধারণা ছিল তবে আমি এটিকে আরও ভার্জোজ মনে করেছি। যেহেতু উভয় নিয়মেরই রেজিএক্সএক্স ইঞ্জিন চালানো দরকার, তাই কোনও বাস্তব পার্থক্য থাকা উচিত should
বোল্ডউইন

ঠিক আছে, দস্তাবেজগুলি খুঁজে পেয়েছি। httpd.apache.org/docs/2.2/mod/mod_rewrite.html আমি কেবল আকর্ষণীয় অংশটি এড়িয়ে গেছি।
বোলডউইন

এটি কোনও বিশাল সমস্যা নয়, তবে এই কনফিগারেশনটি পড়ুন, যদি কেউ ম্যানুয়ালি .css.gz ফাইলটি আনেন তবে তারা অ্যাপ্লিকেশন / এক্স-জিজিপ টাইপটি পেয়ে যখন পাঠ্য / সিএসএস পাবেন।
rjmunro

কেন ! গ্রহন করার আগে গ্রহণ-এনকোডিং লাইনে? অবশ্যই এটি আপনার প্রয়োজনের বিপরীত?
rjmunro

আমি একই চিন্তা করছিলাম, RewriteCondক্লায়েন্ট যখন জিজপ এনকোডিং গ্রহণ করে তবে একমাত্র মিল হবে তা বোঝায়
ডেভিড জেড

3

আহ, মনে হচ্ছে আমি একটি সমাধান পেয়েছি: একই নিয়মে সেট করা থাকলে টি পতাকা কাজ করে না, তবে এটি অবশ্যই কার্যকর করে, যদি আপনি এটির নিজস্ব কোনও নিয়ম ব্যয় করেন:

RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz

RewriteRule \.css\.gz$ - [T=text/css]
RewriteRule \.js\.gz$ - [T=text/javascript]

তবুও আমি অন্যের সমাধান এবং মতামত শুনতে চাই।

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