我有一个部分使用WYSIHTML的Rails应用程序。它的控制方式如下:

// richtext
if($('.richtext').length) {
  var editor = new wysihtml5.Editor(document.querySelector('.richtext'), {
    toolbar: 'wysihtml5-toolbar',
    parserRules:  wysihtml5ParserRules,
    stylesheets: '/assets/wysihtml5-stylesheet.css'
  });
}


这在本地可以正常使用,但是wysihtml5-stylesheet.css不能在远程找到。我试过弄乱资产管道/预编译,但是没有运气。有什么想法吗?这似乎是最近发生的,也就是说,它以前曾经起作用。除了我刚才提到的设置以外,没有其他设置被更改。

请帮忙。

更新资料

即使使用asset_path也找不到该文件:

stylesheets: '<%= asset_path "wysihtml5-stylesheet.css" %>'

最佳答案

几乎可以肯定,问题在于您如何调用stylesheet

-

在生产中,Sprockets fingerprints资产文件-向它们添加大的md5哈希值-使其以“静态”名称引用它们是不正确的(这根本行不通)。

解决方法是使用asset_path helpers之一调用文件(它将以“静态”形式或“指纹”形式引用文件)。

您已经完成了此操作,但是我认为您需要add .erb to your JS file使其起作用:

#app/assets/javascripts/application.js.erb
if($('.richtext').length) {
  var editor = new wysihtml5.Editor(document.querySelector('.richtext'), {
    toolbar: 'wysihtml5-toolbar',
    parserRules:  wysihtml5ParserRules,
    stylesheets: "<%=j asset_path('wysihtml5-stylesheet.css') %>"
  });
}

10-02 14:18