سلام من در حالت لوکال برای اینکه هربار تغیراتی رویه فایل های css و js میدم بصورت خودکار اعمال شود و نیازی به پاک کردن کش مرورگر نباشه از متد mix() استفاده کردم و این متد در حالت لوکال به درستی کار میکنه ( یعنی بعد از فایل یه ای دی قرار میده) ولی هنگامیکه رویه هاست آپلود می کنم این متد کار نمیکنه
سلام.
احساس می کنم خیلی درست متوجه نحوه کارکرد 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 کنید و همه چیز باید طبق روال به درستی انجام بشه.
@mhyeganeh
من دقیقا همین کار رو انجام میدم و میام در لوکال دستور npm run production رو اجرا و سپس محتویات public/css و public/js رو به هاست انتقال میدم، ولی در هاست اون رشته رندوم به آخر فایل های css و js اضافه نمیشه. این فایل mix-manifest.json دقیقا کجای پروژه قرار داره؟
اضافه نمیشه یا همون عبارت رندوم قبلی هست هنوز...؟
در فایل webpack.mix.json تون متد ()version رو کال میکنید؟
در فایل blade تون به چه صورت به فایل ها آدرس دهی میکنید؟
فایل mix-manifest.json هم عرض کردم و در پوشه public روت اصلی پروژه قرار داره و حتما باید بعد از هر بار کامپایل asset ها به هاستتون منتقل بشه.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟