احمد
3 سال پیش توسط احمد مطرح شد
5 پاسخ

کار نکردن متد mix هنگام آپلود پروژه رویه هاست

سلام من در حالت لوکال برای اینکه هربار تغیراتی رویه فایل های css و js میدم بصورت خودکار اعمال شود و نیازی به پاک کردن کش مرورگر نباشه از متد mix() استفاده کردم و این متد در حالت لوکال به درستی کار میکنه ( یعنی بعد از فایل یه ای دی قرار میده) ولی هنگامیکه رویه هاست آپلود می کنم این متد کار نمیکنه


ثبت پرسش جدید
احمد
@ahmad316948 3 سال پیش مطرح شد
0

سلام دوستان کسی نیست پاسخ بده؟


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
0

سلام.
احساس می کنم خیلی درست متوجه نحوه کارکرد mix نشدید.
شما در حالت local بعد از اضافه کردن متد version() به فایل webpack.mix.json باید در فایل های view یا همون blade تون موقع آدرس دهی به فایل های css و js باید از متد mix() استفاده کنید. مثلا اینجوری:

<script src="{{ mix('/js/app.js') }}"></script>

حالا از این به بعد هر وقت یکی از دستور های کامپایل asset هاتون رو بزنید مثل npm run production لاراول میکس میاد محتوای app.js تون رو بازنویسی می‌کنه و فایل public/mix-manifest.json رو هم بروزرسانی می کنه. کاربرد این فایل چیه؟

اگر به محتواش دقت کنید همون عبارت های رندوم که به ادامه آدرس فایل ها اضافه میشه رو ذخیره کرده. یعنی از این به بعد هر وقت لاراول با یک فایل blade روبرو میشه که از متد mix() استفاده شده بود، موقع کامپایل کردنش، میاد از این فایل اون عبارت رندوم رو میخونه و به عنوان query string به آدرس فایل اضافه می‌کنه.

با این توضیحات، چندان معنا نداره که بگیم در لوکال کار میکنه ولی در هاست کار نمی کنه. چون شما اصلا عملیات کامپایل رو که در هاست نباید انجام بدید. بلکه باید در لوکال انجام بشه و بعد محتوای مثلا public/css و public/js تون رو به همراه همین فایل mix-manifest.json و view های جدیدتون به روی هاست منتقل و overwrite کنید و همه چیز باید طبق روال به درستی انجام بشه.


احمد
@ahmad316948 3 سال پیش مطرح شد
0

@mhyeganeh
من دقیقا همین کار رو انجام میدم و میام در لوکال دستور npm run production رو اجرا و سپس محتویات public/css و public/js رو به هاست انتقال میدم، ولی در هاست اون رشته رندوم به آخر فایل های css و js اضافه نمیشه. این فایل mix-manifest.json دقیقا کجای پروژه قرار داره؟


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

اضافه نمیشه یا همون عبارت رندوم قبلی هست هنوز...؟
در فایل webpack.mix.json تون متد ()version رو کال می‌کنید؟
در فایل blade تون به چه صورت به فایل ها آدرس دهی می‌کنید؟

فایل mix-manifest.json هم عرض کردم و در پوشه public روت اصلی پروژه قرار داره و حتما باید بعد از هر بار کامپایل asset ها به هاستتون منتقل بشه.


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
وقتی توی ترمینال هستی ارور دریافت میکنی برای اینکه mix اوکی نیست؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام