【问题标题】:Rails: stylesheet path in js file on productionRails:生产时js文件中的样式表路径
【发布时间】:2015-05-27 14:54:43
【问题描述】:

在我的 js 文件中,我有一些配置,例如

skel.init({
        reset: 'full',
        containers: '100%',
        breakpoints: {
            global: { href: '/assets/skel/style.scss', grid: { gutters: ['2.5em', 0] } },
            xlarge: { media: '(max-width: 1800px)', href: '/assets/skel/style-xlarge.scss' },
            large: { media: '(max-width: 1280px)', href: '/assets/skel/style-large.scss', grid: { gutters: ['2em', 0] } },
            medium: { media: '(max-width: 980px)', href: '/assets/skel/style-medium.scss'},
            small: { media: '(max-width: 736px)', href: '/assets/skel/style-small.scss', grid: { gutters: ['1.5em', 0] }, viewport: { scalable: false } },
            xsmall: { media: '(max-width: 480px)', href: '/assets/skel/style-xsmall.scss' }
        }
    });

正如你所见,href: '/assets/skel/style.scss' 等 css 文件有 hrefs,它们包含在 app/assets/stylesheets/skel 目录中。在开发中它运行完美,但在生产资产编译和 js 找不到那些 css 文件。

我尝试将config.assets.precompile += ['skel/*'] 添加到production.rb 以将skel 资产编译到skel 目录,但没有帮助

【问题讨论】:

    标签: javascript css ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    如果您在 javascript 文件中添加 .erb 扩展名,您可以在 javascript 中使用 asset_path 帮助程序,该帮助程序将在资产预编译时正确扩展。例如,将你的 javascript 文件设为some_filename.js.erb,然后在里面,你可以像这样设置 CSS 的路径:

    global: { href: '<%= stylesheet_path "skel/style" %>', grid: { gutters: ['2.5em', 0] } }
    

    等等……

    作为参考,请参阅 http://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-stylesheet_path 以了解 stylesheet_path 的扩展方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2015-11-10
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多