我是MVC的新手,我无法决定存储cshtml文件及其各自的javascript代码的最佳方式.我的项目中的一些JS代码需要全局运行,但大部分都与特定视图或部分视图完全相关.
如果我把javascript放在视图中,我会得到一堆内联不可缓存的javascript,如果我把它放在一个中心文件中,我就失去了模块性.
我听说在MVC4中会有缩小功能,有什么我可以用MVC3做的,它允许我在视图中选择javascripts包含然后将它们分组并自动缩小它们?(甚至可能是小组?)
我有一个WYSIWYG编辑器,我已在网站中内置并自定义.有许多Javascript文件只需要使用WYSIWYG编辑器加载到页面上; 目前它们被加载到每个页面上(甚至在某些页面上打破其他Javascript).
目前,Javascript文件存在assets/javascript/wysiwyg/并且不包含在需求文件中,application.js但由于资产管道(我认为),它仍然包含在每个页面中.
我想知道我是否可以从其他页面中排除这些文件.是否可以将它们从资产管道移动到public/目录并将它们(在咖啡脚本文件中,可能?)导入相应的视图中?
javascript ruby ruby-on-rails asset-pipeline ruby-on-rails-4
我想为我的Rails应用程序测试两个不同的接口.理想情况下,我希望有两个单独的css文件,一个与每个接口相关联(例如,new_interface.css和old_interface.css).我目前有两个不同的接口部分,一个叫_new_interface.html.erb,一个叫_old_interface.html.erb.如果我想在加载特定视图时调用正确的css文件,我该怎么做?例如,如果我加载_new_interface.html.erb,我希望它加载new_interface.css文件并忽略old_interface.css文件.
我的application.css:
/*
*= require_tree
*/
Run Code Online (Sandbox Code Playgroud) 首先,我是rails的新手.我在rails网站上工作.它有三个控制器,即 application_controller,static_pages_controllers和users_controller.除了static_pages_controllers 之外,它们在app/assets/stylesheets /(application.css和users.css.scss)中都有各自的css(scss)文件, 并且还有一个custom.css.scss用于整体布局或公共元素.我使用了控制器特定的这里提到的样式表
我的问题是:
1)custom.css中的css规则是否适用于所有控制器视图,除了那些我在单独的控制器css中明确定义的视图?
2)如果是,那么我在custom.css.scss和users.css.scss中都定义了一个规则
custom.css.scss - body {background-color:color1;}
users.css.scss - body {background-color:color2;}
但是static_pages_controllers和users_controllers中的视图仍然显示背景color2.我哪里错了?只有users_controller中的视图必须显示color2,而static_pages_controller必须显示color1.
我有一个动作
def new
@test_var = 'i want this to show'
end
Run Code Online (Sandbox Code Playgroud)
我想要做的就是将其注入到为该页面调用的javascript中.例如:
#app/assets/javascript/my_model.js.coffee.erb
$ ->
console.log('<%= @test_var %>')
Run Code Online (Sandbox Code Playgroud)
我猜这不起作用,因为在访问控制器之前编译了coffeescript/erb ...所以,如果我想在3.1中将控制器变量注入JavaScript文件(客户端 - 不能通过ajax访问),我应该怎么做呢?