ম্যাজেন্টো যুক্ত করে সিএসএস এবং জেএসের পাদলেখ অন্তর্ভুক্ত


15

আমি আমার ম্যাজেন্টো সাইটের কিছু ইয়সলো অপ্টিমাইজেশন করছি এবং সাইটের ফুটারে সিএসএস এবং জেএস যুক্ত করার চেষ্টা করছি।

এই মুহুর্তে আমি এক্সএমএল লেআউটে একটি হেড রেফারেন্স ট্যাগ ব্যবহার করছি addJsএবং addCssআমার সমস্ত ফাইল অন্তর্ভুক্ত করার জন্য ব্যবহার এবং ক্রিয়া করছি। আমি পাদলেখের জন্য প্রধান উল্লেখটি অদলবদল করার চেষ্টা করেছি, তবে সাইটটি দেখার চেষ্টা করার সময় একটি ত্রুটি হয়েছিল error এটি করার কোনও উপায় আছে local.xml বা পাদলেখের টেম্পলেট ফাইলটিতে নিজেই হার্ডকডিং করতে হবে?



1
আপনার অদলবদলের পরে সাইটটি দেখার চেষ্টা করার সময় আপনি যে ত্রুটিটি পেয়েছেন তা সরবরাহ করা লোকেরা আপনার প্রশ্নের উত্তর দিতে পারে help
অ্যালান ঝড়

3
জেএসকে ফুটারে সরানো ছাড়াও, আমি নিশ্চিত যে আপনি সিএসএসকে পাদলেখ করতে চান না want এটা থাকা উচিত <head>
pspahn

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

পায়ে সিএসএস। পৃষ্ঠার প্রদর্শনে হাঁ, এবং জেএস কেবলমাত্র বাহ্যিক অন্তর্ভুক্তের জন্য করা উচিত যা পৃষ্ঠা প্রদর্শনকে অবরুদ্ধ করতে পারে। আপনার সার্ভারটি পরিবেশন করা যে কোনও কিছুই মাথায় থাকা উচিত। এটি ফ্রেমওয়ার্ক, ফ্রেমওয়ার্ক পৃষ্ঠার সমাবেশে ভারী ব্যবহৃত হয় এবং পৃষ্ঠাটি রেন্ডার শুরু হওয়ার আগে সেখানে হওয়া উচিত। বেশিরভাগ প্রস্তাবনা অন্ধভাবে অনুসরণ করে বোঝা গেল (কার্গো কাল্ট) আপনার ক্ষতি কেন হয়।
ফায়াসকো ল্যাবগুলি

উত্তর:


7

আমি জানি এটি আপনার প্রশ্নের উত্তর নয় তবে এমন কিছু যা আপনি তবুও বিবেচনা করতে চাইতে পারেন।

ম্যাজেন্টো বিশেষত পণ্য বিবরণ পৃষ্ঠায় ইনলাইন জাভাস্ক্রিপ্টটি প্রচুর পরিমাণে ব্যবহার করে। যেহেতু জাভাস্ক্রিপ্ট শিরোনামে লোড হওয়া বাহ্যিক স্ক্রিপ্টগুলির উপর নির্ভর করে আপনাকে সমস্ত ইনলাইন স্ক্রিপ্টগুলি বাহ্যিক ফাইলগুলিতেও স্থানান্তর করতে হবে এবং সেগুলি ফুটারে যুক্ত করতে হবে।

আপনি ম্যাজেন্টোতে নির্মিত সরঞ্জামগুলির সাথে সিএসএস এবং জেএস সংকুচিত করে এবং তাদের গতি বাড়ানোর জন্য জিজিপ সংক্ষেপণ এবং দূরবর্তী মেয়াদোত্তীর্ণ শিরোনাম ব্যবহার করে দ্রুত এবং ভাল হতে পারেন। এইভাবে জাভাস্ক্রিপ্ট এবং সিএসএস দ্বারা সৃষ্ট 'ল্যাগ' ডিফল্ট ম্যাজেন্টো এবং তৃতীয় পক্ষের এক্সটেনশান বিন্যাস পরিবর্তন না করে সর্বনিম্ন রাখা হবে। এইভাবে, আপনি যখন নিজের ম্যাজেন্টো বা এক্সটেনশানগুলি আপগ্রেড করবেন তখন আপনাকে সমস্ত কাজ পুনরায় করতে হবে না।

এইচটিএমএল 5 বয়লারপ্লেট প্রকল্প দ্বারা সরবরাহিত .htaccess এই জিজিপ সংক্ষেপণ এবং দূরবর্তী মেয়াদোত্তীর্ণ শিরোনাম সরবরাহ করে, দয়া করে http://inchoo.net/ecommerce/magento/magento-boilerplate/ দেখুন


2
অর্ডার লোডিংয়ের কারণে ওপি-র ত্রুটিগুলি খুব সম্ভবত ঘটে - বেশিরভাগ ইনলাইন স্ক্রিপ্টগুলির প্রোটোটাইপ এবং আল প্রয়োজন। আপনি যদি এটি কেবল ফুটারে লোড করছেন তবে এটি অনেক দেরিতে। ইনলাইন জেএস সরানো প্রথম পদক্ষেপ হবে। অনেক কাজ - শুভকামনা।
ক্রিস্টফ ফুমন

4

প্রথম পদক্ষেপটি হ'ল "ফুট" নামে একটি ব্লক তৈরি করা যা মূলত "মাথা" এর সমান তবে আপনি এটিকে অন্য কোনও স্পটে আউটপুট করে নিতে পারেন। আপনি এটি আপনার যুক্ত করতে পারেন page.xml:

    <block type="page/html_head" name="foot" as="foot" template="page/html/foot.phtml"/>

এখন আপনি জেএস / সিএসএস যুক্ত করতে পারেন (যদিও পাদলে সিএসএস প্রস্তাবিত নয়) আপনার এক্সএমএল ফাইলগুলির মধ্যে এই কমান্ডটি ব্যবহার করে:

    <reference name="foot">
        <action method="addItem">
            <type>skin_js</type>
            <name>js/somefile.js</name>
        </action>
        <action method="addItem">
            <type>skin_js</type>
            <name>js/main.js</name>
        </action>
    </reference>

ভিতরে page/html/foot.phtml:

<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
<?php echo $this->getIncludes() ?>

আপনার পৃষ্ঠার টেমপ্লেট ফাইলগুলিতে (উদাঃ page/1column.phtml) ক্লোজিং বডি ট্যাগের আগে আপনাকে এই ব্লকটি আউটপুট করতে হবে:

    <?php echo $this->getChildHtml('foot') ?>

আপনি যদি ডিফল্ট ম্যাজেন্টো টেম্পলেট ব্যবহার করেন তবে আপনি জেএস ত্রুটি পাবেন। উদাহরণস্বরূপ মিনি অনুসন্ধান ফর্মটি ধরুন ( catalogsearch/form.mini.phtml)। এটিতে এই ইনলাইন স্ক্রিপ্ট রয়েছে:

<script type="text/javascript">
    //<![CDATA[
    var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('Search Redset...') ?>');
    //]]>
</script>

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

আপনি যে সমস্যার মুখোমুখি হতে পারেন তা হ'ল আপনি যদি ননক্লিক্লিট মোডে প্রোটোটাইপের পাশাপাশি jQuery ব্যবহার করেন। প্রোটোটাইপের আগে jQuery লোড হয়েছে তা নিশ্চিত করতে হবে যাতে কোনও বিরোধ না ঘটে।


2

Magento v1.6 + এর জন্য (পুরানো সংস্করণগুলিতে পরীক্ষা করা প্রয়োজন);

1 - page/html/footer/extras.phtmlএই বিষয়বস্তু দিয়ে একটি টেম্পলেট ফাইল তৈরি করুন :

<?php echo $this->getCssJsHtml() ?>

2 - আপনার লেআউট এক্সএমএলে এই এইচটিএমএল নোড যুক্ত করুন:

<reference name="before_body_end">
<block type="page/html_head" name="extra_js" as="extraJs" after="-" template="page/html/footer/extras.phtml">
    <action method="addItem"><type>skin_js</type><name>js/jquery.min.js</name></action>
</block>

3 - এটাই!


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