sirve que para for example content ciclo laravel laravel-5 blade laravel-elixir

laravel - que - Ruta pública de control de versiones de Elixir



laravel yield example (3)

Estoy tratando de usar el método de versión () de Elixir con mi carpeta ''pública'' como public_html (en lugar del método ''público'' predeterminado).

Puedo versionar mi archivo css, que produce una carpeta de compilación con el manifiesto dentro de public_html

elixir.config.cssOutput = ''public_html/css''; elixir.config.jsOutput = ''public_html/js''; elixir(function(mix) { mix.styles([ ''vendor/normalize.css'', ''app.css'' ], null, ''public_html/css''); mix.version(''public_html/css/all.css''); });

En mi plantilla de blade utilizo

<link href="{{ elixir("css/all.css") }}" rel="stylesheet">

El problema es que la función elixir busca en la carpeta ''public / build''. ¿Cómo puedo cambiar esto para que busque la carpeta public_html?

Gracias de antemano


No hay ninguna opción en elixir () para cambiar la ruta pública:

function elixir($file) { static $manifest = null; if (is_null($manifest)) { $manifest = json_decode(file_get_contents(public_path().''/build/rev-manifest.json''), true); } if (isset($manifest[$file])) { return ''/build/''.$manifest[$file]; } throw new InvalidArgumentException("File {$file} not defined in asset manifest."); }

Hay solo algunas opciones. Puede cambiar la ruta pública agregando esto a App / Providers / AppServiceProvider

public function register() { $this->app->bind(''path.public'', function() { return base_path().''/public_html''; }); }

o puedes crear tu propia función de elixir o una clase de ayuda

Ejemplo:

function my_own_elixir($file,$path=public_path()) { static $manifest = null; if (is_null($manifest)) { $manifest = json_decode(file_get_contents($path.''/build/rev-manifest.json''), true); } if (isset($manifest[$file])) { return ''/build/''.$manifest[$file]; } throw new InvalidArgumentException("File {$file} not defined in asset manifest."); }

Luego puedes usar esto más adelante a la vista:

{{my_own_elixir(''/css/all.css'',$path=''path to public_html'')}}

Esperemos que en la futura versión del elixir se incluya este futuro. :)


Se olvidó de sobrescribir su carpeta publicDir en el archivo gulpfile.js , esto apunta a la carpeta de build a la ubicación correcta que elixir usa para determinar el hash de la versión.

elixir.config.publicDir = ''public_html'';

Después de hacerlo, debe sobrescribir su public_path en Laravel, la forma recomendada para que Laravel 5 sea ir al index.php en su carpeta pública:

Debajo

$app = require_once __DIR__.''/../bootstrap/app.php'';

Añadir

// set the public path to this directory $app->bind(''path.public'', function() { return __DIR__; });


todo lo que necesitas hacer es esto

var elixir = require(''laravel-elixir''); elixir.config.publicDir = ''public_html''; elixir.config.publicPath = ''public_html'';