【问题标题】:Linking asset files to views in Laravel4将资产文件链接到 Laravel4 中的视图
【发布时间】:2014-04-18 07:45:57
【问题描述】:

您好,我是学习 laravel 4 来创建应用程序的新手。我正在尝试使用 laravel 刀片将 twitter bootstrap3 文件链接到视图。我安装了一个新的 laravel 应用程序文件夹。

为了从 url 路径中删除公共文件,我删除了公共文件夹中的所有文件并保留在公共文件夹之外。我根据 index.php 文件中的上述更改更改了路径。根据我的需要,我的应用程序中有两个部分,一个用于用户,另一个用于管理员。

为此,我像下面这样更改了我的 routes.php 文件。

Route::get('/', 'HomeController@index');

Route::get('/admin', 'AdminController@index');

我创建了两个控制器,一个用于用户,另一个用于管理员,分别命名为 HomeController 和 AdminController。这两个文件如下所示。

HomeController for Users

<?php

class HomeController extends BaseController {


   public function index()
   {
    return View::make('index');
   }

 }

AdminController for admin section

<?php

class AdminController extends BaseController {


    public function index()
    {
        return View::make('admin.index');
    }

}

现在我在管理部分的视图文件夹下创建了管理文件夹。这就是为什么我保留admin.index 来调用管理索引页面,而网址是这样的http://localhost/laravel/admin

现在我创建了 assets 文件夹,其中包含用于存放 css 文件的 css 文件夹、用于存放图像的 js 文件夹 js 文件和 images 文件夹。我想将这些 css 和 js 文件链接到我的管理视图。所以我创建了一个layout.blade.php,如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Laravel</title>

<link rel="stylesheet" href="{{ asset('assets/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
<script type="text/javascript" src="{{ asset('assets/js/jquery-1.10.1.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('assets/js/bootstrap.min.js') }}"></script>
</head>

<body>  
    @yield('content')
</body>
</html>

在此之后,我将我的视图更改为如下所示。

@extends('layout')
@section('content')
<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <p>Here Comes Admin Section</p>
        </div>
    </div>
</div>
@stop

但资产没有链接。请问我哪里出错了。

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    如果你的资产文件夹在 laravel 的公用文件夹中,那么使用这个:

    假设你的文件夹结构是public/assets/css/bootstrap:那么

     <script src="{{ URL::asset('assets/css/bootstrap.css') }}"></script>
    

    【讨论】:

    • 嘿,我完全删除了公用文件夹,并将资产文件夹保留在主应用程序文件夹中
    • 你做错了。公共文件夹应该是他们的,公共文件夹应该是他们的 index.php ,与它们一起你可以放置你的 js css 或资产。
    • 为了从 url 路径中删除公共文件,我将所有文件保留在主应用程序文件夹的公共文件夹中,并删除了空的公共文件夹
    • 如果你查看 laravel 主文件夹中的 server.php,你会发现 public/index.php 的路径。再次创建公用文件夹并将 index.php 和您的其他资产文件放在那里。但是,如果您想以这种方式进行操作,请转到 bootstrap/paths.php 并进行相应的更改
    • 嘿,我正在再次安装 laravel 应用程序文件夹,但请告诉我如何从 url 路径中删除 public
    【解决方案2】:

    使用您的服务器或本地计算机上的虚拟主机从您的 URL 中删除公共。这很简单。只需谷歌了解如何为 Laravel 设置虚拟主机。

    设置好虚拟主机后,只需将资产文件夹放在公共目录中即可。

    然后在你的 Blade 布局中,使用:

    <link rel="stylesheet" href="{{ URL::asset('assets/css/bootstrap.css') }}">
    

    【讨论】:

      猜你喜欢
      • 2019-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2019-03-29
      • 2021-11-07
      相关资源
      最近更新 更多