gpt4 book ai didi

css - Rails - 在 application.rb 中添加了 4 个自定义 Assets 路径而无需重新启动

转载 作者:行者123 更新时间:2023-11-28 00:57:34 25 4
gpt4 key购买 nike

Rails-4

对于下面提到的字体,

@font-face {
font-family: "Verdana";src: url(/assets/Verdana.ttf) format("truetype");
}

文件位置是app/assets/fonts(由rails自己加载)

现在,如果我在 app/assets/fonts/client_4 文件夹中有这个文件,

我必须在 application.rb 中添加以下内容

config.assets.paths << Rails.root.join('app', 'assets', 'fonts', 'client_4')

Dir.glob("#{Rails.root}/app/assets/fonts/**/").each do |path|
config.assets.paths << path
end

它与作为 url(/assets/Verdana.ttf) 提供的字体 url 一起工作,但需要重新启动服务器以加载 application.rb

查询

案例是我的字体文件由用户上传并存储在 app/assets/fonts 目录中新创建的 client_x 文件夹中。

在这种情况下,我想在不重新启动服务器的情况下为该 client_x 文件夹添加 asset_path。请提出建议。

更新

每当创建目录时,我都会在 Controller 中添加以下内容,

MyApplication::Application.config.assets.paths << Rails.root.join('app', 'assets', 'fonts', "client_#{@client.id}/").to_s

然后我通过 erb 标签在页面中检查了以下内容,

= puts MyApplication::Application.config.assets.paths.inspect

我得到了以下输出,

[
[ 0] "/home/..../app/assets/fonts",
[ 1] "/home/..../app/assets/images",
[ 2] "/home/..../app/assets/javascripts",
[ 3] "/home/..../app/assets/stylesheets",
[ 4] "/home/..../vendor/assets/javascripts",
.
.
[20] "/home/..../app/assets/fonts/client_164/",
[21] "/home/..../app/assets/fonts/client_163/"

]

  1. 第 20 个路径由 application.rb 添加并在服务器启动时加载,我通过 asset_url 在 font-face 中获取字体文件

  2. 第 21 条路径由 Controller 添加,并且我没有通过 font-face 中的 asset_url 获取字体文件。

如果我检查我可以看到 Assets 中的两个路径,我没有得到,但我仍然没有得到 Controller 添加的 client_163 内字体文件的 Assets url。我想要它而无需重新启动服务器。请建议 eagerload 或 autoload 是否有帮助。

最佳答案

我无法确切地得到我想要的东西,但我找到了替代方案。

我没有为 app/assets/fonts/中的子目录添加 Assets 路径。

我使用完整的 url,如“#{APP_URL}/assets/client_#{client_id}/#{self[file]}”产生像'http://localhost:3000/assets/client_163/GreatVibes-Regular.otf这样的网址'

这里用于开发的 APP_URL 是,' http://localhost:3000 ' 在 development.rb 中设置。同样添加用于暂存和制作。

最好在 application.yml 中保留变量 APP_URL(实现 figaro gem)并以“#{ENV[APP_URL]}”访问(注意:在 .gitignore 中添加 application.yml)

等待更好的方法。

更新

在暂存和制作中,我正在为不安全https url 申请字体,所以请帮忙。

关于css - Rails - 在 application.rb 中添加了 4 个自定义 Assets 路径而无需重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52869346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com