Rails 3 电子邮件中的 CSS 图像

2023-12-02

我正在尝试使用 Rails 3 和 Action Mailer 发送一封电子邮件。电子邮件发送得很好,但我希望它采用 HTML 格式,并带有一些基本样式,其中包括背景图像。我知道图像可能会被阻止,直到用户允许显示它们,但我仍然认为最好链接到我的网络服务器上的图像。

名为 Registration_confirmation.html.erb 的电子邮件模板如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
body {
    background: url(/images/mainbg_repeat.jpg) top repeat-x #cfcfcf;
    margin: 0px 0px 0px 0px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #565656;
}

获取背景图像的 url 链接以包含完整主机以便背景显示在电子邮件中的最佳方法是什么?


在回复我的另一个答案时,@Kevin 写道:

感谢您的回答,我确实想过做类似的事情,但我 不认为以我的设置方式是可能的。邮寄者 调用发生在模型的 after_create 调用中,而不是在 控制器,所以我认为我无法像您一样访问请求对象 提到过(或者我错了)。我的邮件初始化程序中确实有这个: ActionMailer::Base.default_url_options[:host] = "localhost:3000" 我可以吗 以某种方式在我的邮件程序中使用该 hos 参数使其工作?

答案是肯定的。所有 Rails url 构造助手都应该使用这些 defualt_url_options。除了设置:host,您还应该通过设置此选项强制它使用绝对网址:

ActionMailer::Base.default_url_options[:only_path] = false

另外,设置资产主机如下:

config.action_mailer.asset_host = 'http://localhost:3000'

然后只需使用image_pathhelper 而不是手写 url,如下所示:

<style type="text/css">
body {
    background: url(<%= image_path('mainbg_repeat.jpg') %>) top repeat-x #cfcfcf;
}
</style>

注意:不建议直接设置default_url_options。这是新的方法:

config.action_mailer.default_url_options = {
    :host => 'localhost:3000',
    :only_path => false
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 电子邮件中的 CSS 图像 的相关文章

随机推荐

  • 如何在 Mac OS X 上强制使用 64 位 python?

    使用 arch x86 64 选项编译 sip 时出现以下错误 prosseek siplib smcho python c import sip print sip Traceback most recent call last File
  • Qt4 + matplotlib 的 mplot3d

    我正在尝试在 Qt4 GUI 中嵌入 3D 绘图 有其他按钮 这可以使用 matplotlib 的 mplot3d 吗 我知道可以使用 matplotlib backends backend qt4agg 绘制二维图 并且我已经这样做了 如
  • C++ - 排序算法看不到用户定义类型的重载“<”运算符。

    好的 我有 1 个名为的用户定义类型fraction它代表带有分子和分母的普通分数 这是代码 class Fraction private int numerator int denominator public Fraction int
  • 如何使用 JSON 数据填充 React Select?

    如何填充选项反应选择使用下面没有的 JSON 数据value and label特性 sortCode 55 77 42 accountNumber 08488234 accountType Savings Account accountN
  • 替换 JSON 中的属性值

    如果我有一个看起来像这样的 JSON 结构 var user map width 785 height 791 image name image png size width 32 properties firstName Bob last
  • 我可以在 UITextField 中放置不可编辑的文本吗

    我想在 UITextField 内放置一些固定文本 但在插入点之前 有点像这样 他 走向 其中 towaards 是可编辑部分 重点是在上下文中显示可编辑文本 这可能吗 和 或有更好的选择吗 我想你可以通过实施来做到这一点UITextFie
  • 如何使用 opencv android 通过触摸事件提供流体效果/调整位图大小

    我是 OpenCV4Android 和 Android NDK 的新手 努力实现 相对于图像上的触摸点拉伸图像 将头发放在脸上并使用触摸事件相应地拉伸它 例如 虚拟化妆应用程序 问题 使用 Java 时 通过从位图获取矩阵并在触摸事件上重新
  • JavaScript 计算返回 NaN 作为结果

    我正在开发一个 html 页面 它需要日期并显示日期 我正在使用一个称为泽勒同余的公式 但在 JavaScript 中 公式返回结果 NaN 我用谷歌搜索了这个问题 无法找出解决方案 这是接受值的 html
  • 有没有办法编写通用代码来查找 Go 中切片是否包含特定元素?

    我想知道是否有一种通用的方法来编写代码来判断切片是否包含元素 我发现它通常很有用 因为有很多逻辑来首先判断特定元素是否已经在切片中 然后决定要做什么接下来做 但似乎没有一个内置的方法 看在上帝的份上 为什么 我尝试使用interface 这
  • java 1.6 中 String.split 的行为?

    我的代码是 String s 1 23 System out println s split length 并给出输出5 的源代码split is public String split String regex return split
  • 行组内的 ssrs 列可见性

    我有一份报告 其中有多个组 主要在行和一个列组中 但我需要根据所选参数显示某些列 如图所示 当我右键单击专业列时 列可见性不可用 有人可以帮我解决这个问题吗 thanks source ravidowluri com 我自己解决了这个问题
  • Git 子树合并在合并简单的上游更改时报告冲突

    我开始学习 git 1 8 2 中的子树合并 我创建了一个简单的示例来测试将第三方存储库迁移到主项目的更改 我正在关注6 7 Git 工具 子树合并例子 子 项目作为子目录包含在 主 项目中 对 子 项目进行更改后 当我尝试将更改合并到 主
  • EGit 和 GitHub 出现“Auth Failed”错误

    我已经在 Eclipse Helios 上安装了 EGit 插件 并且尝试将其与我的 GitHub 帐户一起使用 但是当我尝试配置它时 出现 Auth Failed 错误 我一直在谷歌上搜索 但没有运气 这似乎是我的密码有问题 但 AFAI
  • “AdaptiveCard”不包含“FromJson”的定义 - Microsoft Bot Framework

    我尝试创建一个自适应卡 从 json 解析它 正如中提到的https learn microsoft com en us adaptive cards create libraries net example parse from json
  • 通过 iisnode 在 iis 上使用 Node.js Express

    我有一个 Node js Express 应用程序 我需要让它在本地 IIS 服务器上运行 以便我可以向它发送有效的 http 请求并处理响应 我使用的是 win 10 和 IIS 10 我遵循了有关使用 iisnode 的不同指南 以便在
  • Katalon studio Java jar 文件

    我想在 Katalon studio 中使用我的 Java 代码 但我不知道哪个 jar我必须导入 Katalon 的文件 我阅读了 Katalon 提供的所有文档 并阅读了所有有关 Katalon 中 java 代码使用的论坛帖子 我没有
  • Heroku 500 内部服务器错误

    我正在开发 Ruby on Rails 应用程序并尝试使用 Heroku 部署它 但是我遇到了一些无法解决的错误 我已经查看了 Heroku 日志 可以看到详细信息 但我不知道出了什么问题 在我看来 问题来自我的 header html e
  • Android - 从另一个活动控制按钮

    我有两项活动 主页活动包含一个列表视图 其中有两个名为checkIn and 方向 当单击 checkIn 按钮时 它会执行一些操作 例如 A 单击方向按钮时 它会启动方向活动 因此 在方向活动中 如果满足某些条件 则会出现一个警报框 询问
  • static const(非整数)成员初始化语法背后的基本原理?

    我知道如何初始化不是整数的静态成员 但我想知道这种语法背后的基本原理是什么 我希望能够将值放入类中 就像使用整数成员一样 class A static const int i 3 我意识到 如果我更改该值 这可能意味着更多的重建 因为它是标
  • Rails 3 电子邮件中的 CSS 图像

    我正在尝试使用 Rails 3 和 Action Mailer 发送一封电子邮件 电子邮件发送得很好 但我希望它采用 HTML 格式 并带有一些基本样式 其中包括背景图像 我知道图像可能会被阻止 直到用户允许显示它们 但我仍然认为最好链接到