我的javascript和jquery有问题。除了一些自编脚本之外,我还在使用bootstrap。当我尝试javascript驱动的操作(即单击显示隐藏div的按钮或打开模式)时,浏览器不响应。浏览器的javascript控制台显示以下错误:
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/ecns/css/bootstrap.min.css
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/ecns/js/bootstrap.min.js
请注意,该位置位于“ecns”文件夹中,而不是“资产”。 Ecns是我的模特之一,我目前正在浏览器中使用它,如果我去了我的应用程序的不同部分,错误看起来像这样:
Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3000/requests/js/bootstrap.min.js
我知道脚本本身没有问题,因为它们可以在不同的计算机上运行。我假设我在导轨中配置或安装不正确。作为参考,这是我的application.js:
//= require jquery
//= require jquery_ujs
//= require_tree .
以下是我的应用程序布局:
<head>
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<title>Site</title>
<%= javascript_include_tag "application" %>
<%= stylesheet_link_tag "application", media: "all" %>
<%= csrf_meta_tags %>
</head>
<body>
...
<script src="js/bootstrap.min.js"></script>
</body>
为什么rails会查找资产的错误位置?我正在运行rails 3.2.1
答案 0 :(得分:1)
Rails正在使用自定义资产管道,这会使所有资产在应用根目录的assets
子目录下可见。
因此,如果您的基地址为http://www.something.com/
,则所有资产都将位于http://www.something.com/assets/
。
如果要导入CSS或JS文件,并且如果将它们正确放置在Rails中的app/assets/
目录中,则应使用以下命令:
<%= javascript_include_tag "bootstrap.min" %>
<%= stylesheet_link_tag "bootstrap.min" %>
将它们放置在布局中的任何位置。
如果您仍想手动导入它们(我不推荐它),请使用以下命令:
<script src="assets/bootstrap.min.js"></script>
<link href="assets/bootstrap.min.css" rel="stylesheet" media="screen">