【问题标题】:HTTP::script add me a folder to the path - LaravelHTTP::script 为我添加一个文件夹到路径 - Laravel
【发布时间】:2014-09-15 09:25:15
【问题描述】:

我想在 Laravel 应用程序中添加对我的脚本的引用。在我的编辑 UI 中,我有这样的参考:

{{ HTML::script('js/exam-definition.js') }}
{{ HTML::script('js/exam-definition-update.js')}}

脚本位于文件夹:/public/js/exam-definition.js 中,另一个相同。但是当我在浏览器中部署时,页面给了我这个错误:

http://test.dev/public/exam/js/exam-definition.js?=1406161079799 http://test.dev/public/exam/js/messages.js?=1406161079800

您可以看到 URL 如何更改(因为资产占用),附加一个不存在的“考试”文件夹。有什么问题吗?我对另一个刀片模板中的脚本有相同的引用,部署时没有错误。 这是我的控制器方法:

/**
 * Show the form for edit a Exam
 */
public function edit($id) {
    $exam = ExamService::examDefinition($id);
    $questions = $exam->getQuestions()->getResults();

    return View::make('exam.edit')
        ->with('exam', $exam)
        ->with('questions', $questions);
}

还有这个页面的路由:

Route::get('exam/edit/{id}',    
    array('as' => 'exam_edit',      
           'uses' => 'ExamDefinitionController@edit'
    )
);

提前致谢!

【问题讨论】:

    标签: javascript url laravel-4 http-status-code-404


    【解决方案1】:

    你应该使用

    {{ HTML::script('/js/exam-definition.js') }}
    {{ HTML::script('/js/exam-definition-update.js')}}
    

    这将创建一个从 Web 根目录开始的引用,而不是从文件所在的当前目录开始。这也解释了为什么您的代码可以在另一个刀片模板中工作。

    【讨论】:

    • 嗨,我尝试这条路线,但也有同样的错误。我对路线进行了更改,以便我可以测试应用程序,而不是坚持这一点并尝试稍后解决。我的路线是 Route::get('exam/edit/{id}', ...) 现在我从路线中删除编辑,如下所示: Route::get('exam/{id}', .. .)。使用这最后一条路线,应用程序对 js 收费很好,但是我不知道为什么在 js 之前添加“考试”,因为 HTML::style putt 在公共目录中。
    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2013-12-22
    • 1970-01-01
    相关资源
    最近更新 更多