Определенное представление c не может расширить файл макета в Laravel 7 - PullRequest
1 голос
/ 06 апреля 2020

Я работаю на благотворительном веб-сайте, используя Laravel 7, у меня есть основной файл макета, который был расширен в два представления: представление index и представление show, оба представления находятся в одном каталоге и для тестирования я скопировал код из представления index и вставил его в представление show, но представление index показывает стилизацию и все правильно, но при загрузке представления show он не имеет css Стили и js, ниже приведены все соответствующие файлы:

Представление layout:

<!DOCTYPE html>
<html lang="en">

<head>  
@include('partials.header')
@yield('styles') 
</head>
<body>
   @include('partials.nav')
   @yield('content')
   @include('partials.footer')  
<!-- loader -->
<div id="ftco-loader" class="show fullscreen"><svg class="circular" width="48px" height="48px"> 
<circle class="path-bg" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke="#eeeeee"/><circle 
class="path" cx="24" cy="24" r="22" fill="none" stroke-width="4" stroke-miterlimit="10" 
stroke="#F96D00"/></svg></div>

<script src="js/jquery.min.js"></script>
<script src="js/jquery-migrate-3.0.1.min.js"></script>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.easing.1.3.js"></script>
<script src="js/jquery.waypoints.min.js"></script>
<script src="js/jquery.stellar.min.js"></script>
<script src="js/owl.carousel.min.js"></script>
<script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/bootstrap-datepicker.js"></script>

<script src="js/jquery.fancybox.min.js"></script>

<script src="js/aos.js"></script>
<script src="js/jquery.animateNumber.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js? 
key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
<script src="js/google-map.js"></script>
<script src="js/main.js"></script>
@yield('scripts')

</body>
</html>  

Вот представление index, которое работает правильно:

@extends('layout')
@section('content')
<div class="site-section fund-raisers bg-light">
<div class="container">
  <div class="row mb-3 justify-content-center">
    <div class="col-md-8 text-center">
      <h2>All Fundraisers</h2>
      <p class="lead">These are the fundraisers that require your little help to give hope to the 
 ones in need.</p>

    </div>
  </div>
</div>

<div class="container-fluid">


    <!-- <div class="row"> -->

    <div class="col-md-12 block-11">
    <div class="nonloop-block-11 owl-carousel">

   @foreach($causes as $cause)


        <div class="card fundraise-item">

          <a href="#"><img class="card-img-top" src="{{ asset($cause->image) }}" alt="Image 
  placeholder"></a>

          <div class="card-body">

            <h3 class="card-title"><a href="{{ route('causes.show', $cause->id) }}">{{ $cause->title 
  }}</a></h3>

            <p class="card-text">{{ $cause->body }}</p>

            <span class="donation-time mb-3 d-block">Last donation 1w ago</span>

            <div class="progress custom-progress-success">
              <div class="progress-bar bg-primary" role="progressbar" style="width: 80%" aria- 
  valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
            </div>

            <span class="fund-raised d-block">$12,000 raised of $30,000</span>

          </div>

        </div>

    @endforeach



    </div>

 </div>

 <br />
  <div class="d-flex justify-content-center align-items-cente"> {{ $causes->links() }} </div>

 </div>
 </div>

 @endsection  

Это представление show, которое показывает один элемент, но не работает правильно:

@extends('layout')
@section('content')
<div class="site-section fund-raisers bg-light">
<div class="container">
  <div class="row mb-3 justify-content-center">
    <div class="col-md-8 text-center">
      <h2>All Fundraisers</h2>
      <p class="lead">These are the fundraisers that require your little help to give hope to the 
 ones in need.</p>

    </div>
  </div>
</div>

<div class="container-fluid">


    <!-- <div class="row"> -->

    <div class="col-md-12 block-11">
    <div class="nonloop-block-11 owl-carousel">



        <div class="card fundraise-item">

          <a href="#"><img class="card-img-top" src="{{ asset($cause->image) }}" alt="Image 
  placeholder"></a>

          <div class="card-body">

            <h3 class="card-title"><a href="">{{ $cause->title }}</a></h3>

            <p class="card-text">{{ $cause->body }}</p>

            <span class="donation-time mb-3 d-block">Last donation 1w ago</span>

            <div class="progress custom-progress-success">
              <div class="progress-bar bg-primary" role="progressbar" style="width: 80%" aria- 
   valuenow="80" aria-valuemin="0" aria-valuemax="100"></div>
            </div>

            <span class="fund-raised d-block">$12,000 raised of $30,000</span>

          </div>

        </div>




    </div>

    </div>


  </div>
 </div>



 @endsection  

Это файл controller:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Cause as Cause;

class CausesController extends Controller
{
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    $causes = Cause::take(15)->paginate(5);

    return view('causes.index', ['causes' => $causes]);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    //
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    //
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    $cause = Cause::findOrFail($id)->first();

    return view('causes.show', ['cause' => $cause]);
}   

Вот файл web.php для маршрутов:

<?php

use Illuminate\Support\Facades\Route;



Route::get('/', 'HomeController@index')->name('home.index');

Route::get('/causes', 'CausesController@index')->name('causes.index');
Route::get('/causes/{id}', 'CausesController@show')->name('causes.show');  

Ниже на рисунке показан путь как index, так и show представлений:
path-to-index-and-show-views

Два дня я старался изо всех сил, чтобы найти решение, но ничего не помогло, любая помощь в этом отношении будет оценена. * 10 39 *

1 Ответ

0 голосов
/ 06 апреля 2020

Проблема не в вашем коде просмотра или логи c. Все правильно. Проблема заключается только в том, как вы загружаете свои ресурсы c, то есть файл CSS и JS.

Я думаю, вы, должно быть, поместили файлы CSS и JS в пабли Папка c, поэтому при доступе к маршруту индекса JS URL становится

<script src="js/jquery.min.js"></script>

, но при попытке поиска файлов CSS и JS в

<script src="causes/{id}/js/jquery.min.js"></script>

То, что вы можете попробовать сделать, это:

<script src="{{ url('js/jquery.min.js') }}"></script>

Это просто для решения вашей проблемы, в идеале, вы должны хранить эти файлы в папке Resource и использовать Laravel Mix для компиляции этих файлов и их автоматической загрузки. .

Ссылка: https://laravel.com/docs/7.x/mix

...