【问题标题】:How to embed css to HTML in laravel?如何在 laravel 中将 css 嵌入 HTML?
【发布时间】:2015-07-30 17:53:23
【问题描述】:

首先,为了清楚起见,我知道我可以包含我的 css 文件

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

要生成的html将是:

<link rel="stylesheet" type="text/css" href="http://myhost/public/css/myStyle.css">

问题是我的视图文件用于电子邮件,许多电子邮件客户端不加载外部 css 文件。所以我需要让它像这样:

<style>
    .content-of-my-css {
        //content of my css
    }
    // more css
</style>

由于 css 设置将用于多个电子邮件模板,我不想对其进行硬编码。在纯 PHP 中,这可以通过 (reference) 完成

<style><?php include "path/to/my/css";?></style>

但是,当我使用 laravel 执行此操作时,它会说:

ErrorException (E_ERROR) include(): http:// 包装器被禁用 在服务器配置中通过allow_url_include=0

那么,有没有办法可以将 css 嵌入 laravel 中? (我使用的是 laravel 4.2)

【问题讨论】:

    标签: php css laravel laravel-4 html-email


    【解决方案1】:

    您似乎使用的是 URL 而不是本地文件路径。

    例如

    include('http://example.com/css/styles.css');
    

    会产生你的错误,但以下不应该

    include(public_path().'css/styles.css');
    

    【讨论】:

    • 仅作记录。您缺少“/” -> include(public_path().'/css/styles.css');但是+1的答案。像魅力一样工作。
    【解决方案2】:

    如果您使用多个模板,我建议您创建多个样式视图,其中仅包含 css,您可以使用刀片 @include 包含它们

    style1.blade.php
    style2.blade.php
    

    在样式里放css代码

    <style>
        .content-of-my-css {
            //content of my css
        }
        // more css
    </style>
    

    在 master.blade.php 布局中

    <html>
      <head>@include('style1')</head>
    </html>
    

    如果是动态的,你可以传递样式参数

    @include($style)
    

    【讨论】:

    • 由于css样式也将用于电子邮件预览(这是普通网页),所以在我的情况下最好保存为css文件。
    • 另外,它是 而不是 html 中的
      。
    猜你喜欢
    • 2013-04-08
    • 2022-09-26
    • 2021-10-13
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多