直接从公用文件夹加载HTML文件,如Laravel中的View

时间:2015-08-06 18:40:46

标签: php laravel view laravel-5 blade

我正在使用Laravel。 我想把自己的婚礼邀请放在一起。 我的公共文件夹中有一个文件夹,它有样式和脚本。

我想知道我是否可以指向该文件夹,而不是将所有内容复制并粘贴到新的刀片文件中。

路线

Route::get('/wedding', 'WeddingController@index');

WeddingController

<?php namespace App\Http\Controllers;

class WeddingController extends Controller {


    public function index()
    {
        return view('wedding.index');
    }

}

问题

我想知道我是否可以指出我的索引功能从我的 / public 文件夹中的某个文件夹加载index.html

我们是否必须从.blade目录中加载app/resources/views文件?

对此有任何帮助/建议将不胜感激。

3 个答案:

答案 0 :(得分:5)

只需将婚礼文件夹直接放在公共文件夹中:

mv wedding/ /path/to/laravel/public

然后访问带有婚礼后缀的网站网址:

http://my-site.com/wedding

这将从婚礼文件夹中加载index.html

这可以通过您的try_files配置文件中的Nginx&n /etc/nginx/sites-enabled/my-site指令运行:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

这指示Nginx首先搜索与URL对应的实际文件(例如,/css/app.css/wedding/index.html等)。如果找不到匹配的文件(例如它通常会返回404未找到),那么它应该将查询字符串作为参数传递给index.php脚本。

答案 1 :(得分:3)

使用File Facade

从控制器加载静态文件
use File;

return File::get(public_path() . '/to new folder name/index.html');

答案 2 :(得分:1)

一种解决方案是将您的结婚邀请resources/views重命名为cd path/to/laravel mkdir resources/views/wedding mv public/wedding/index.html resources/views/wedding/index.php 并将其放在public function index() { return view('wedding.index'); } 文件夹中,以便它成为Laravel模板。

public/

然后您可以根据需要从控制器中调用它:

{{1}}

当然,使用此方法,您必须确保所有CSS / JavaScript /图片网址都已正确映射到{{1}}文件夹中的各自位置。