Laravel Elixir 错误路径
Laravel Elixir wrong paths
这是我的gulpfile.js
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.less([
'style.less'
], 'public/css/style.css')
.styles([
'reset.css',
'font-awesome.min.css',
'style.css'
], 'public/css/app.css', 'public/css')
.scripts(['jquery-1.12.0.min.js', 'main.js'], 'public/js/app.js', 'resources/assets/scripts')
.version(['css/app.css', 'js/app.js']);
});
结果我得到了文件
public/build/app-2a14246111.css
public/build/app-7790e07dfb.js
public/build/rev-manifest.json
但是当我尝试将 css 和 js 文件添加到布局时
<link rel="stylesheet" href="{{ elixir("css/app.css") }}">
<script src="{{ elixir("js/app.js") }}"></script>
我明白了
<link rel="stylesheet" href="/build/css/app-2a14246111.css">
<script src="/build/js/app-7790e07dfb.js"></script>
浏览器找不到它们,因为它试图找到
http://localhost:8080/build/css/app-2a14246111.css
http://localhost:8080/build/js/app-7790e07dfb.js
和项目文件夹名称以及 public 文件夹在路径中以某种方式丢失。如何解决?
其实我明白了,我可以在路径中添加点,例如
<link rel="stylesheet" href=".{{ elixir("css/app.css") }}">
<script src=".{{ elixir("js/app.js") }}"></script>
然后一切正常,但我不喜欢这种修复方式。
那是因为您是 运行 本地主机上的 Laravel 项目。当您将项目部署到服务器时,问题会自行解决(假设配置正确)。
如果您使用的是 Apache,您可以添加一个虚拟主机配置,这样您就可以使用 http://domain-name.app
:
之类的东西来代替 http://localhost:8080/laravel/public
<VirtualHost *:80>
DocumentRoot "C:\Users\username\path\to\laravel\public"
ServerName domain-name.app
</VirtualHost>
然后在你的主机文件中添加:
127.0.0.1 domain-name.app
这样,您可以 link 到 HTML 中的绝对路径,例如 /css/somefile.css
而不是 ./css/somefile.css
。
结帐Homestead,来自Laravel,它有助于避免屁股上的很多痛苦。
FWIW...你也可以像这样用 URL::asset 包装长生不老药标签:
<link href="{{ URL::asset(elixir('css/app.css')) }}" rel="stylesheet">
这解决了我的问题,并且仍然允许我在端口 8888 上 运行。
这是我的gulpfile.js
var elixir = require('laravel-elixir');
elixir(function(mix) {
mix.less([
'style.less'
], 'public/css/style.css')
.styles([
'reset.css',
'font-awesome.min.css',
'style.css'
], 'public/css/app.css', 'public/css')
.scripts(['jquery-1.12.0.min.js', 'main.js'], 'public/js/app.js', 'resources/assets/scripts')
.version(['css/app.css', 'js/app.js']);
});
结果我得到了文件
public/build/app-2a14246111.css
public/build/app-7790e07dfb.js
public/build/rev-manifest.json
但是当我尝试将 css 和 js 文件添加到布局时
<link rel="stylesheet" href="{{ elixir("css/app.css") }}">
<script src="{{ elixir("js/app.js") }}"></script>
我明白了
<link rel="stylesheet" href="/build/css/app-2a14246111.css">
<script src="/build/js/app-7790e07dfb.js"></script>
浏览器找不到它们,因为它试图找到
http://localhost:8080/build/css/app-2a14246111.css
http://localhost:8080/build/js/app-7790e07dfb.js
和项目文件夹名称以及 public 文件夹在路径中以某种方式丢失。如何解决?
其实我明白了,我可以在路径中添加点,例如
<link rel="stylesheet" href=".{{ elixir("css/app.css") }}">
<script src=".{{ elixir("js/app.js") }}"></script>
然后一切正常,但我不喜欢这种修复方式。
那是因为您是 运行 本地主机上的 Laravel 项目。当您将项目部署到服务器时,问题会自行解决(假设配置正确)。
如果您使用的是 Apache,您可以添加一个虚拟主机配置,这样您就可以使用 http://domain-name.app
:
http://localhost:8080/laravel/public
<VirtualHost *:80>
DocumentRoot "C:\Users\username\path\to\laravel\public"
ServerName domain-name.app
</VirtualHost>
然后在你的主机文件中添加:
127.0.0.1 domain-name.app
这样,您可以 link 到 HTML 中的绝对路径,例如 /css/somefile.css
而不是 ./css/somefile.css
。
结帐Homestead,来自Laravel,它有助于避免屁股上的很多痛苦。
FWIW...你也可以像这样用 URL::asset 包装长生不老药标签:
<link href="{{ URL::asset(elixir('css/app.css')) }}" rel="stylesheet">
这解决了我的问题,并且仍然允许我在端口 8888 上 运行。