【问题标题】:Laravel Elixir wrong pathsLaravel Elixir 错误的路径
【发布时间】:2016-01-27 13:14:28
【问题描述】:

这是我的 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
公共/构建/app-7790e07dfb.js
公共/构建/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

并且项目文件夹名称和公用文件夹在路径中以某种方式丢失。如何解决?

其实我明白了,我可以在路径中添加点

<link rel="stylesheet" href=".{{ elixir("css/app.css") }}">
<script src=".{{ elixir("js/app.js") }}"></script>

然后一切都会工作,但我不喜欢这种修复。

【问题讨论】:

    标签: laravel laravel-elixir


    【解决方案1】:

    那是因为你在 localhost 上运行 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
    

    这样,您可以链接到 HTML 中的绝对路径,例如 /css/somefile.css 而不是 ./css/somefile.css

    结帐Homestead,来自 Laravel,它有助于避免很多麻烦。

    【讨论】:

    • 非常感谢您提供这个想法。我现在用XAMPP,有什么办法可以在这里添加虚拟主机吗?
    • @Heidel 是的,可以使用 XAMPP。谷歌一下吧。
    • 我在 httpd-vhosts.conf 中添加了 &lt;VirtualHost *:8080&gt; DocumentRoot "C:\xampp\htdocs\snimu\public" ServerName snimu &lt;/VirtualHost&gt;(我的 XAMPP 使用 8080 端口)并在 hosts 文件中添加了 127.0.0.1 snimu www.snimu,但找不到页面
    • 您是否重新启动了 XAMPP?另外 www.snimu 没有域名扩展看起来很奇怪,你应该添加一个扩展 IMO。
    • 是的,我确实重新启动了 XAMPP。我更改了域 snimu.com 并重新启动了 XAMPP,但再次找不到页面。
    【解决方案2】:

    FWIW...你也可以像这样用 URL::asset 包装 elixir 标签:

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

    这解决了我的问题,并且仍然允许我在端口 8888 上运行。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2017-01-20
      • 2017-11-28
      • 2015-04-27
      • 2015-07-16
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多