【问题标题】:Laravel - View:Make not working properly when including external filesLaravel - 查看:包含外部文件时无法正常工作
【发布时间】:2015-02-18 07:30:23
【问题描述】:

我在使用 laravel 时遇到了一个非常奇怪的错误

Route::get('/', function()
{
    return View::make('index');
});

它会正确加载视图内的 index.php

但是

当我有类似http://localhost:8000/xyz(不存在)的东西时,它也会路由到 index.php 并且所有 js 文件都会正确加载,但是当我转到 http://localhost:8000/xyz/abc(不存在)时

它没有正确加载 js 文件,我的页面呈现错误

App::missing(function($exception)
{
    return View::make('index');
});

我的应用缺少功能。

为什么会这样。

除此之外,我还有另一个 laravel 实例,它没有给出这样的问题,它也可以处理

http://localhost:8000/xyz/abc/ahbfd/dfdfd/dfdfd (不存在)

没有任何错误。

希望我很清楚。

【问题讨论】:

  • 您尝试在/start/global.php 中使用App::error 吗?
  • 应用程序错误已经存在App::error(function(Exception $exception, $code) { Log::error($exception); });

标签: php laravel laravel-4 laravel-routing


【解决方案1】:

链接到 JS 或 CSS 文件最适合 URL::asset()ÙRL::to()。假设您的包位于 vendors 文件夹中,您将执行以下操作:

<script src="{{URL::to('/vendor')}}/packages/bower/jquery/dist/jquery.min.js"></script>

或用于 public/assets 文件夹

<script src="{{URL::asset('/')}}/packages/bower/jquery/dist/jquery.min.js"></script>

这样,你可以确保 Laravel 为你的文件创建一个正确的路径,对应于被调用的路由。

【讨论】:

  • 运气还是一样。正确路由不是问题,但视图中引用的 js 文件未正确加载。
  • 你能发帖吗,你如何链接到 js 文件?
  • &lt;body&gt; &lt;script type="text/javascript" src="packages/bower/jquery/dist/jquery.min.js"&gt;&lt;/script&gt; &lt;div class="welcome"&gt; &lt;h1&gt;You have arrived.&lt;/h1&gt; &lt;/div&gt; &lt;/body&gt;
  • 当我访问http://localhost:8000/xyz时它正在加载,为什么不在http://localhost:8000/xyz/abc
【解决方案2】:

以下是我从研发中找到的答案。

你需要添加 <base href="/" target="_top"> </base> &lt;html&gt; 之前可能是或您认为合适的任何地方。

【讨论】:

  • 但我想&lt;base&gt; 可能是我能做到的最简单的方法,因为我的index.php 中包含了很多 JS,因此替换脚本语法有点困难且耗时难以维护。
  • 不,因为 Url::to() laravel 会处理它;-)
猜你喜欢
  • 1970-01-01
  • 2016-10-03
  • 2017-06-12
  • 2016-02-01
  • 2014-07-09
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多