更改 laravel elixir 版本路径
Change laravel elixir version path
我正在使用 laravel 长生不老药并分配这样的版本
mix.version([
'public/assets/css/all.css',
'public/assets/js/all.js'
]);
我在元标记中这样称呼它
{{ elixir('assets/css/all.css') }}
元标记中的结果是
<link href="/build/assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
我想知道有什么方法可以像
那样改变路径
<link href="assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
不久我想从路径中删除 "build"。感谢提前
下面是 elixir()
辅助函数的完成方式,位于 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
:
if ( ! function_exists('elixir'))
{
/**
* Get the path to a versioned Elixir file.
*
* @param string $file
* @return string
*/
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.");
}
}
方法一
如你所见,它只定义了这个函数,如果它不存在的话。
因此,一种解决方法是使用您自己的自定义代码定义它,并确保 composer autoloader 首先加载它。但是,它可能会有一些技巧,所以我建议另一种方法:
方法二
创建您自己的辅助函数(使用另一个名称)!
随便命名,删除两个 build
引用并使用它。此外,请确保不时检查原始函数以确保您的代码符合要求。
从 Laravel 5.2 开始,Elixir 有一个设置自定义路径的选项,但没有记录。要使用没有构建子文件夹的 public 文件夹,您可以使用:
elixir(function(mix) {
mix.version(['css/all.css', 'js/all.js'], 'public');
});
// For referencing the css
// null -> base directory (public)
<link rel="stylesheet" href="{{ elixir('css/all.css', null) }}">
This blogpost 为 5.2 之前的 Laravel 版本提供了很好的解释和解决方法。
我正在使用 laravel 长生不老药并分配这样的版本
mix.version([
'public/assets/css/all.css',
'public/assets/js/all.js'
]);
我在元标记中这样称呼它
{{ elixir('assets/css/all.css') }}
元标记中的结果是
<link href="/build/assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
我想知道有什么方法可以像
那样改变路径<link href="assets/css/all-5ca511c0.css" rel="stylesheet" type="text/css">
不久我想从路径中删除 "build"。感谢提前
下面是 elixir()
辅助函数的完成方式,位于 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php
:
if ( ! function_exists('elixir'))
{
/**
* Get the path to a versioned Elixir file.
*
* @param string $file
* @return string
*/
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.");
}
}
方法一
如你所见,它只定义了这个函数,如果它不存在的话。 因此,一种解决方法是使用您自己的自定义代码定义它,并确保 composer autoloader 首先加载它。但是,它可能会有一些技巧,所以我建议另一种方法:
方法二
创建您自己的辅助函数(使用另一个名称)!
随便命名,删除两个 build
引用并使用它。此外,请确保不时检查原始函数以确保您的代码符合要求。
从 Laravel 5.2 开始,Elixir 有一个设置自定义路径的选项,但没有记录。要使用没有构建子文件夹的 public 文件夹,您可以使用:
elixir(function(mix) {
mix.version(['css/all.css', 'js/all.js'], 'public');
});
// For referencing the css
// null -> base directory (public)
<link rel="stylesheet" href="{{ elixir('css/all.css', null) }}">
This blogpost 为 5.2 之前的 Laravel 版本提供了很好的解释和解决方法。