2016-10-06 8 views
2

Недавно я сделал новую установку рамки Lumen и начал строить сайт из нее. Да, я знаю, что просвет предназначен только для API, но, пожалуйста, помогите мне с этим.Функция url() Lumen, выполняющая странно

Я поместил все мои взгляды в /ресурсов/просмотров и мои шаблоны внутри /ресурсов/просмотров/шаблоны.

Теперь, так как я должен был поместить [CSS/JS/изображения] где-то, я думал, размещая все, что в государственных/активов/[CSS/JS/изображения] было бы хорошо.

Теперь в моем макете, когда я пытаюсь включить CSS - я использую что-то вроде этого -

<link href="{{ url('assets/css/something.css') }}"> 

и работает давая выход что-то вроде этого -

<link href="localhost/assets/css/something.css"> 

же вещь работает для js тоже, но странно, когда я пытаюсь включить изображения. Для включения изображения я пишу что-то вроде -

<img src ="{{ url('assets/images/someimage.jpg') }}" 

и при просмотре исходного кода страницы, выход, как я ожидаю, что это -

<img src="localhost/assets/images/someimage.jpg"> 

но моя консоль увольняет 404 не найденных ошибок заявив someimage. jpg не найден. И когда я перекрестный осматривая родитель на изображение, в URL-адрес полностью отличается soemthing, как это -

<img src="localhost/images/someimage.jpg"> 

См автоматически опуская «активы» из URL изображения и в результате 404, но я могу видеть правильный URL при просмотре Исходный текст страницы.

Вещи, которые я пытался решить эту проблему -

  1. Очищенные кэш и перезагружает страницу.

  2. Пробовал использовать актив() вместо url(), но прототип этого был удален из просвета.

  3. Выдвиньте папку [css/js/images] из активов и вставьте их в родительский объект, т. Е. Общедоступный. Это сработало, но тогда вопрос в том, почему предыдущая настройка работала для поиска как для css, так и для js и вызвала проблему только с изображениями?

Мои другие вопросы -

1. Как URL в исходный код страницы может отличаться от одного визуализируемого? Просто говоря в моем случае адрес в исходном коде страницы работал и отображается изображение, но так как URL будучи renderred опущены «активы» с пути, следовательно, в результате 404.

2. Есть ли другой хороший способ, чтобы включить эти активы в представлениях. Если да, то укажите, где их поставить?

Прикрепление некоторых изображений/кода для справки.

Output of rendered page showing 404 errors for images but none for css.

Output of view page source windows showing asset included in image path

ответ

1

Нет подсказкой, если это правильно, но я верю, что вы на самом деле нужно поместить поток изображения внутри этого URL. Теперь сервер пытается получить некоторый байт, закодированный объект, которого нет.

Я понятия не имею, если это тот же случай для вас, но у меня было много случаев, когда я должен был поместить в файл ручьи вместо URL-адресов, которые я решить этот путь, используя this library:

routes.php

/** 
* Image handling routes. 
* These make sure images actually are images instead of bytecode 
*/ 
Route::get('organization/logo/{logo}', function($logo) { 
    $file = Image::make(Storage::disk('logo-image')->get($logo)); 
    return $file->response(); 
}); 

Посмотреть

<img src="{{ asset('organization/logo/' . $organization->logo_path) }}" alt=""> 

Я migh t быть полностью выключен, но я узнаю, что происходит с вашим приложением, и это позаботилось о проблемах, когда я его реализовал.

+0

Эй! Спасибо за ответ, я бы определенно попытался ответить. Но на данный момент вы можете связать меня с любым ресурсом, где я могу найти дополнительную информацию о решении, которое вы дали? –

+0

Я нашел это довольно полезным: https://m.reddit.com/r/laravel/comments/3f9257/psa_uploading_interventionimages_using_storageput/, и в противном случае документы Intervention Image довольно понятны – Loek

0

Проверьте конфигурацию своего веб-сервера. Похоже, у вас есть какой-то тип перенаправления, который перенаправляет assets/images/* на images/*.

В качестве простого теста откройте вкладку «Сеть» и перейдите в ваш браузер до http://samplelumena.local/assets/images/footer1.jpg. Я предполагаю, что трассировка сети покажет 30x (301, 302 и т. Д.) До http://samplelumena.local/images/footer1.jpg, а затем 404 для этого URL-адреса.