从Laravel 5视图访问供应商文件的简单方法是什么?

时间:2015-07-21 00:44:14

标签: laravel laravel-5

我已将bootstrap-calendar(使用凉亭)安装到我的Laravel 5项目中。 Bootstrap-calendar已安装到我的laravel / 供应商 / bootstrap-calendar /文件夹中。

要使用bootstrap-calendar,我需要在我的视图中引用CSS / JS文件,来自:

laravel/vendor/bootstrap-calendar/css
laravel/vendor/bootstrap-calendar/js

是否有一种简单而干净的方法可以在我的项目中使用这些文件,而无需将它们复制到公共文件夹中?

2 个答案:

答案 0 :(得分:11)

您可以使用Laravel Mix(在Laravel< = 5.3上称为Laravel Elixir)在您应用的资源上执行此功能和其他功能。

Laravel> = 5.4:

mix.copy('vendor/bootstrap-calendar/css', 'public/bootstrap-calendar/css');
mix.copy('vendor/bootstrap-calendar/js', 'public/bootstrap-calendar/js');

Laravel< = 5.3:

elixir(function(mix) {
    mix.copy('vendor/bootstrap-calendar/css', 'public/bootstrap-calendar/css');
    mix.copy('vendor/bootstrap-calendar/js', 'public/bootstrap-calendar/js');
});

答案 1 :(得分:-2)

public目录之外的文件不能通过HTTP访问(因为public是服务器的文档根目录)。你有两个选择:

  1. bootstrap-calendar文件复制到您的public目录(不是最佳解决方案,因为您需要再次复制软件包的任何更新)

  2. 使用以下命令创建从供应商目录到bootstrap-calendarpublic目录的符号链接(确保在bootstrap-calendar中创建public目录预先):

  3.  
    ln -s /path/to/laravel/vendor/bootstrap-calendar /path/to/laravel/public/bootstrap-calendar
    

    然后你可以将它们包括在你的视图中:

    <!-- Stylesheets -->
    <link rel="stylesheet" href="{{ asset('bootstrap-calendar/css/calendar.css') }}">
    
    <!-- Scripts -->
    <script src="{{ asset('bootstrap-calendar/js/calendar.js') }}">