【问题标题】:accessing custom asset at a runtime在运行时访问自定义资产
【发布时间】:2014-04-23 01:30:58
【问题描述】:

我正在开发一个应用程序,它生成自定义 css 文件(在运行时编译 scss)并将它们放在 /public/asset/themes 文件夹中。当我想访问生成的文件时,例如 /public/assets/themes/1.css 通过调用以下代码:

Rails.Application.assets["themes/1.css"] 

我得到 nil(没有响应),即使我的路径添加了:

Rails.application.config.assets.paths << Rails.root.join('public','themes')

当我想访问由 Sprockets 生成的其他文件时,它工作正常。

为什么我无法使用这种方法访问文件?

感谢您的帮助

【问题讨论】:

    标签: ruby-on-rails-4 sprockets


    【解决方案1】:

    添加自定义文件夹如下:

    config.assets.paths << Rails.root.join("app", "assets", "theme")
    

    现在要查看终端中添加的路径,您可以使用以下任一给定选项:

    y Rails.application.config.assets.pathsRails.application.config.assets.paths

    如果需要调用各自的样式表,则如下调用;

    <%= stylesheet_link_tag "1" %> (for 1.css)
    

    希望对你有帮助:)

    【讨论】:

    • 我生成的css文件不在app/assets文件夹中,而是在public/assets中。那么这应该有效吗?
    • 您是否处于生产模式?
    • 目前在开发中,为什么?
    • 那么您只能通过app/assets OR lib/assets OR vendor/assets 添加资产。 public/assets 是预编译资产的默认位置,我们永远不会在开发模式下进行预编译。您是否阅读过 railsguides 中的资产管道参考资料?
    • 如果它真的对您有帮助,请不要忘记接受答案,以供将来参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多