با سلام من پروژه لاروال - لایووایر 3 را بر روی سرور حقیق آپلود کردم . ولی موقع درخواست ها خطای زیر مانع می شود:
https://myhost.ir/zakani/public/vendor/livewire/update 404 (Not Found)
"https:/myhost.ir/zakani/public/vendor/livewire/update".
در حالی که در پوشه vendor/livewire فایل های زی همه موجود است:
livewire.esm.js , livewire.js , mainfest.json
همچنین در فایل web.php دستورات زیر وجود دارد:
Livewire::setScriptRoute(function ($handle) {
return Route::get('/zakani/public/vendor/livewire/livewire.js', $handle);
});
Livewire::setUpdateRoute(function ($handle)
{
return Route::post('/zakani/public/vendor/livewire/update', $handle);
});
مشکل 404 به این معنی است که درخواست شما به فایل یا مسیر مورد نظر در سرور نمیرسد. در مورد مشکل شما چند نکته میتواند مطرح باشد:
به نظر میرسد مشکل اصلی شما از این باشد که مسیرها در web.php
به درستی پیکربندی نشدهاند. در لاراول و لایووایر نیازی به دستی تنظیم این مسیرها ندارید. پیشنهاد میکنم این بخشها را به صورت پیشفرض رها کنید:
// این بخشها را از فایل web.php حذف کنید
Livewire::setScriptRoute(function ($handle) {
return Route::get('/zakani/public/vendor/livewire/livewire.js', $handle);
});
Livewire::setUpdateRoute(function ($handle) {
return Route::post('/zakani/public/vendor/livewire/update', $handle);
});
لایووایر به طور پیشفرض خودش این مسیرها را تنظیم میکند.
APP_URL
:در فایل .env
مطمئن شوید که مقدار APP_URL
به درستی تنظیم شده باشد:
APP_URL=https://myhost.ir/zakani
اگر این مقدار درست نباشد، ممکن است درخواستها به مسیر نادرست هدایت شوند.
.htaccess
:مطمئن شوید که فایل .htaccess
در دایرکتوری public
به درستی تنظیم شده باشد. اگر سرور شما از آپاچی استفاده میکند، باید یک فایل .htaccess
مانند زیر داشته باشید:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
مطمئن شوید که دسترسیهای لازم برای پوشهها و فایلهای vendor
به درستی تنظیم شده باشد. برای مثال:
chmod -R 755 vendor/
chown -R www-data:www-data vendor/
این دستورات را در صورتی که دسترسی به سرور داشته باشید میتوانید اجرا کنید.
اگر پروژه در محیط لوکال (Localhost) به درستی کار میکند، پس از اطمینان از عملکرد صحیح، مجدداً فایلها را بر روی سرور آپلود کنید و دقت کنید که فایلها و پوشهها به درستی آپلود شده باشند.
ممکن است کشهای قبلی لایووایر باعث این مشکل شده باشند. با استفاده از دستورات زیر میتوانید کش لاراول و لایووایر را پاکسازی کنید:
php artisan view:clear
php artisan config:clear
php artisan cache:clear
php artisan livewire:discover
با انجام مراحل بالا، به احتمال زیاد مشکل شما برطرف خواهد شد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟