محمدسجاد دباغ
3 سال پیش توسط محمدسجاد دباغ مطرح شد
8 پاسخ

تداخل 127.0.0.1:8000 و localhost در لاراول

سلام وقت بخیر دوستان
مشکل اینجاست که لینک زیر اجرا نمیشه و ارور 404 میده

http://127.0.0.1:8000/storage/upload/img/1.jpg

اما لینک زیر اجرا میشه

http://localhost/storage/upload/img/1.jpg

و نکته جالب اینکه لینک های زیر به درستی اجرا میشن به این معنی که http://127.0.0.1:8000 به درستی ست شده

<link rel="stylesheet" href="http://127.0.0.1:8000/assets-theme1/css/style.css">
<link rel="stylesheet" href="http://127.0.0.1:8000/assets-theme1/slick/slick.css">

کانفیگ های من:

filesystems.php
'public' => [
            'driver' => 'local',
            'root' => storage_path('upload'),
            'url' => env('APP_URL').'/storage/upload',
            'visibility' => 'public', //private
        ],
.env
APP_URL=http://127.0.0.1:8000
app.php
'url' => env('APP_URL', 'http://127.0.0.1:8000'),

و دستورات زیر هم چندین بار وارد کردم

php artisan storage:link
php artisan config:clear
php artisan config:cache

ثبت پرسش جدید
محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش مطرح شد
0

@rezajahangir متشکرم از پاسخگویی
پاسخ صحیح سوالام این هست که لینک http://127.0.0.1:8000/storage/upload/img/1.jpg نباید هم اجرا بشه بلکه برای دسترسی پابلیک به فایل های استوریج باید از لینک شورتکد فایل در پوشه پابلیک استفاده کرد ، یعنی http://127.0.0.1:8000/img/1.jpg

'links' => [
        public_path('img') => storage_path('upload\img')
    ],

در قسمت link از filesystems.php طبق بالا مشخص کرده بودم که شورت کد از فایل های storage/upload/img در پوشه img پابلیک گرفته بشه ، لذا فراخوانی هم بایستی از همان پوشه پابلیک باشد.


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام.
در فایل env. به صورت زیر بنویسید.

APP_URL=http://localhost:8000

موفق باشید.


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

@rezajahangir سلام تغییری حاصل نشد.


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

بعد از تغییر در فایل env. باید php artisan serve رو مجدد اجرا کنید، همین کارو انجام دادین؟


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش مطرح شد
-1

@rezajahangir بله دستور php artisan serve رو مجدد اجرا کردم ، اما ارور 404 همچنان پابرجاست


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

از دستور زیر استفاده کنید.

php artisan serve --port=8000

محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش آپدیت شد
0

@rezajahangir دستور php artisan serve --port=8000 هم تاثیری نداشت.
برای فراخوانی از asset استفاده میکنم و در تمام حالتی که در env مشخص میکنیم همیشه 127.0.0.1:8000 پاس داده میشود ، و برای link و سایر بخش ها هم 127.0.0.1:8000 اجرا میشود و تنها برای تصاویر storage نمیتوان از 127.0.0.1:8000 استفاده کرد. storage تنها با localhost اجرا میشود.

<img src="{{ asset('storage'.$item->user_avatar()->file_url) }}"
<link rel="stylesheet" href="{{asset('assets-theme1/css/style.css')}}">

رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

چه تغییری داخل پروژه ایجاد کردین که باعث چنین اتفاقی افتاد؟


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

@rezajahangir متشکرم از پاسخگویی
پاسخ صحیح سوالام این هست که لینک http://127.0.0.1:8000/storage/upload/img/1.jpg نباید هم اجرا بشه بلکه برای دسترسی پابلیک به فایل های استوریج باید از لینک شورتکد فایل در پوشه پابلیک استفاده کرد ، یعنی http://127.0.0.1:8000/img/1.jpg

'links' => [
        public_path('img') => storage_path('upload\img')
    ],

در قسمت link از filesystems.php طبق بالا مشخص کرده بودم که شورت کد از فایل های storage/upload/img در پوشه img پابلیک گرفته بشه ، لذا فراخوانی هم بایستی از همان پوشه پابلیک باشد.


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

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