【问题标题】:Add static page into CMS将静态页面添加到 CMS
【发布时间】:2015-07-09 22:12:21
【问题描述】:

我使用 laravel 5 和刀片模板引擎。我想创建模块以将包含 html、css、js 和图像文件的静态页面作为 .zip 存档插入到我的 CMS 中。当用户需要与另一家公司创建页面并且不具备 laravel 技能或不需要了解我们的项目结构时,这应该会有所帮助。

我目前的流程是这样的:

  1. 准备具有以下结构的 .zip 存档:
    • 资产
      • js
      • CSS
      • 图片
    • index.html

场景:

  1. 打开 CMS 并填写标题、链接(slug)、类别并将存档放入文件输入。在保存时,我将存档解压缩到 public/static_pages/__slug__/ 并通过添加正确的链接替换资源(css、js、图像)的 index.html 链接。此页面的链接类似于/page/{category_slug}/{slug}

案例:

这可行,但有时我想使用布局,例如某些页面使用菜单和页脚,但其他页面不使用。那我该怎么办?

我有一些想法:

  1. 将 html 文件转换为刀片。在开发过程中,我们将添加特殊的 像<!-- section content -->、<!-- section menu --> 和 将其转换为刀片模板。
  2. 添加正确的刀片文件
  3. 在 CMS 中添加 html 并选择布局。如果选择了布局,则使用它并添加到 @section('content') 我们的静态页面,如果没有 - 显示没有布局的静态页面。
  4. 添加带有 cmets 的 html 文件,例如 <!-- insert menu -->、<!-- insert content -->。我们应该在数据库或文件中准备一些“节”,并用准备好的节替换 cmets。

问题:

在所有情况下,我都不知道如何在正确的位置(在 html 中)添加 css / js 文件。

如果使用布局 - 如果我们使用布局,那么我们应该有预定义的 jquery。所以在静态页面中我们不能复制它,但是在开发过程中我们需要它。

如果没有布局 - 每次在存档中添加 jquery 和全局 css,所以我们在服务器上复制它并且无法缓存它。

我该怎么办?

【问题讨论】:

    标签: php templates content-management-system laravel-5


    【解决方案1】:

    如果您不想使用 Less/Sass 或任务运行器(例如 gulp),您可以手动将资产文件添加到公用文件夹:

    public
    |_css
    |_js
    

    在您的视图中,只需将其链接到它们,如下所示:

    {{ HTML::style('css/style.css') }}
    

    或者

    <link media="all" type="text/css" rel="stylesheet"  href="css/style.css">
    

    脚本相同。您可以从这里获得更多信息:

    http://laravel.com/docs/5.1/blade

    http://laravel.com/docs/5.0/templates

    我尝试使用视图中名为

    的文件夹来组织我的主题文件

    “布局”

    然后制作以下文件:

    master.blade.php、header.blade.php、footer.blade.php

    在 header.blade.php 中设置你的 html 头代码,对于页脚你可以这样设置你的主人:

        <!DOCTYPE html>
    <html>
        <head>
            <title>@yield('title')</title>
    
            @include('layout.header')
    
    
        </head>
        <body>
            @yield('content')
        </body>
    <footer>
        @include('layout.footer')
    </footer>
    </html>
    

    然后在您的任何视图中,刀片文件只需写入:

     @extends('layout.master')
    @section('title','title of your page')
    @section('content')
    your body content
    @stop
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多