如何防止Rails加载资产?

时间:2014-03-08 21:56:04

标签: ruby-on-rails ruby-on-rails-3

一个可以理解的奇怪问题。我正在将项目移植到RoR,以便使用它的一些组件。资产管理不是其中之一。

我在页面来源中结束了这样的事情:

<!DOCTYPE html>
<html>
<head>
  <title>Opera</title>
  <link data-turbolinks-track="true" href="/assets/application.css?body=1" media="all" rel="stylesheet" />
<link data-turbolinks-track="true" href="/assets/main.css?body=1" media="all" rel="stylesheet" />
  <script data-turbolinks-track="true" src="/assets/jquery.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/jquery_ujs.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/turbolinks.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/main.js?body=1"></script>
<script data-turbolinks-track="true" src="/assets/application.js?body=1"></script>
  <meta content="authenticity_token" name="csrf-param" />
<meta content="5YFRzv/wICYBms8cregzthpFqCr5gf3pQknNpLOOeEg=" name="csrf-token" />
</head>
<body>

    <!-- My scripts and stylesheets below -->

我该怎么做才能使页面不加载自己的脚本和样式表?

此外,如果我在.erb模板中链接样式表,它们最终都会在<body>标记下。 Rails样式表/脚本助手假设您的东西在/asset目录中。

如果我将脚本和样式表放在<head>中,如何让Rails链接/public下的脚本?

谢谢!

1 个答案:

答案 0 :(得分:2)

由于app/views/layouts/application.html.erb

中有以下两行,因此加载了默认脚本和样式表
<%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>

Rails使用文件app/views/layouts/application.html.erb中定义的布局作为渲染任何视图的默认布局。视图在渲染时位于application.html.erb的正文部分。

您可以从app/assets/javascripts/application.js文件中删除不需要的js,从app/assets/stylesheets/application.css文件中删除css。您还可以在这两个文件中指定自己的资产。

我不确定/public级别。 Rails管道资产可以放置在三个位置之一的应用程序内:app/assetslib/assetsvendor/assets

详细了解:Rails Asset Pipeline