【问题标题】:can laravel include blade route from public filelaravel 可以包含来自公共文件的刀片路由吗
【发布时间】:2021-02-14 17:35:51
【问题描述】:

我在公用文件夹中创建文件并尝试包含刀片文件

<?php include('../resources/views/template/header.blade.php'); ?>

它不能正常工作,此时 css 不渲染。 谁能帮我解决这个问题

【问题讨论】:

    标签: laravel laravel-blade


    【解决方案1】:

    这将不起作用,因为如果您直接运行/包含 PHP 文件,则不会执行 laravel 刀片模板中的 @if 等。它应该总是被称为

    view("my_page");
    

    此视图函数获取 my_page.blade.php 文件中的脚本并对其进行处理并生成结果。

    如果您想创建一个公共路由,例如 yoursite.com/my_page.php,那么最好为“/my_page.php”创建一个路由,然后使用 view 方法返回刀片文件。例如

    Route::get('/my_page.php', function () {
        return view('my_page');
    });
    

    我不建议你将php文件直接放在public文件夹中。

    【讨论】:

      【解决方案2】:

      htmlblade 模板之间存在一些差异。 Laravel 遵循 blade 引擎。

      当你使用 php core include() 函数时,它会将模板解析为 plain php 和里面的所有刀片语法(例如@extends、@if...@else 等)该文件将不起作用。

      我猜你需要的是刀片中的 include() 函数,它在刀片模板中被寻址为 @include()

      将代码替换为以下内容,

      @include('template/header.blade.php')
      

      您不需要添加 resources/views,因为默认情况下 @include() 导航到该目录。

      【讨论】:

        猜你喜欢
        • 2021-02-08
        • 1970-01-01
        • 2013-11-22
        • 2018-09-28
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多