我对Rails相当新,遇到了一个我无法理解的问题。我正在尝试将Trix编辑器添加到我的应用程序中。我用gem安装它并且工作正常......但仅限于开发中。在生产中它不加载编辑器。如果我改变的话,我也可以让它在开发中失败:
config.assets.debug = false
in development.rb
我已经验证代码包含在预编译的.js文件中。它看起来像:
<script src="/assets/application-xyz" data-turbolinks-track="reload"></script>
我能够让它工作的唯一方法是在标题中明确声明Trix CSS和JS文件:
<link rel="stylesheet" type="text/css" href="/assets/trix.css">
<script type="text/javascript" src="/assets/trix.js"></script>
我很困惑,为什么它甚至会起作用,因为那些文件甚至不在资源文件夹中......也许它们会被gem自动添加?无论如何,它甚至在生产中都有效,但这似乎是一个坏主意。
的application.js:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap
//= require trix
//= require_tree .
有没有理由为什么它会出现在预编译的js文件中却没有正确加载?我不确定如何缩小错误的来源。有没有办法告诉开发人员工具是否正在加载或是否有错误?
答案 0 :(得分:1)
我意识到你的问题就是你在你的项目中添加引导程序的方式,在你的资产/样式表中,你既有这两个文件的未分类和缩小版本,也有bootstrap.js和bootstrap.css。您将它们再次添加到application.js和application.css文件中的项目中。
我所做的是删除所有未被使用的css和javascript文件,作为重复的引导程序文件和脚手架的自动生成文件,还评论或删除你添加Trix的方式通过这种方式,您可以在两个application
文件中进行Trix调用。
# application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require trix
//= require_tree .
请注意,没有Bootstrap调用,因为他们已经加载了require_tree
# application.scss
/*
*= require trix
*= require_self
*= require_tree .
*/
此外,您还在Gemfile中添加了Trix,因此您可以将其称为“资产”中的“要求”。申请文件。
我已经在Heroku上使用您的项目分叉进行了BitBucket项目,因此您可以比较并查看究竟发生了哪些更改。
希望它可以帮到你!