Rails + Bower问题:资产路径

3
我已经通过Bower将"Tinymce"安装到我的Rails应用程序的vendor/assets/bower_components/tynymce-dist目录中。 我在application.js中包含了js资源,它可以正常工作。
//= require tinymce-dist

然后我在application.css中包含了CSS文件。
@import 'tinymce-dist/skins/lightgray/skin.min.css'

这个程序可以运行,但我在Rails控制台中遇到了一个错误。

 ActionController::RoutingError (No route matches [GET] "/assets/skins/lightgray/skin.min.css"):

并且在谷歌浏览器控制台中

GET http://localhost:3000/assets/skins/lightgray/skin.min.css

在这种方式下,tinymce脚本调用it。
skinUrl = tinymce.baseURL + '/skins/' + skin;

看起来它调用了绝对URL。

一个解决方案是使用Tinymce gem,但我不想使用这种方法。

如何解决这个问题。

1个回答

1
如果您在Rails应用程序中使用Bower,建议您研究Rails Assets

enter image description here

这基本上允许您将支持bower的资源作为gem包含。只需在他们的应用程序中搜索相应的gem包,然后将该gem添加到您的Gemfile中即可:

enter image description here

RA实际上已经有了TinyMCE-dist

enter image description here


我个人建议使用Rails Assets - 如果您不想使用,我可以删除这个答案。它将为您提供Bower的优点和gem系统的可靠性:
#Gemfile
source https://rubygems.org
source https://rails-assets.org #-> add this line

gem 'rails-assets-tinymce-dist'

然后将以下内容添加到您的JS和CSS资源中:
#app/assets/javascripts/application.js
//= require tinymce-dist/tinymce.js

#app/assets/stylesheets/application.css
@import 'tinymce-dist/skins/lightgray/skin'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接