1

我是 Rails 开发的新手,而且有点乱!我已经获得了一个代码库,并且 HTML 中没有引用任何资产。没有失败的网络请求,它们根本没有包含在标记中!当我尝试使用他们的 URL 直接访问它们时,它们就在那里。

作为比较 - 我的同事系统最终会收到大约 30 个左右的请求,并且最终结果是完全样式化的。但是我没有样式,只有基本标记。

我已经阅读了大量内容并检查了我的配置,检查了我是否在开发模式下运行等等。我真的很难过!

值得一提的是,我目前在一个跨平台的团队环境中工作,那里有使用 Linux、Windows 和 Mac OS X 的开发人员。没有人有这些问题;而且我很确定其他使用 Mac OS X 的开发人员的设置与我的完全相同!

源代码是从与其他人相同的 git 存储库中获取的,并且绝对是最新的。下面是 rails 的输出:注意没有错误。

=> Booting WEBrick
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
        SECURITY WARNING: No secret option provided to Rack::Session::Cookie.
        This poses a security threat. It is strongly recommended that you
        provide a secret to prevent exploits that may be possible from crafted
        cookies. This will not be supported in future versions of Rack, and
        future versions will even invalidate your existing user cookies.

    Called from: /******************/abstract_store.rb:28:in `initialize'.
[2013-04-17 21:20:55] INFO  WEBrick 1.3.1
[2013-04-17 21:20:55] INFO  ruby 2.0.0 (2013-02-24) [x86_64-darwin12.3.0]
[2013-04-17 21:20:55] INFO  WEBrick::HTTPServer#start: pid=22421 port=3000


Started GET "/" for 127.0.0.1 at 2013-04-17 21:21:05 +0100
Processing by AccountsController#home as HTML
Completed 401 Unauthorized in 6ms


Started GET "/users/sign_in" for 127.0.0.1 at 2013-04-17 21:21:05 +0100
Processing by Devise::SessionsController#new as HTML
  Rendered devise/shared/_links.erb (1.5ms)
  Rendered devise/sessions/new.html.erb within layouts/application (10.0ms)
  Rendered layouts/_navigation.html.erb (1.0ms)
  Rendered layouts/_messages.html.erb (0.3ms)
Completed 200 OK in 776ms (Views: 86.5ms | ActiveRecord: 647.5ms)


Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2013-04-17 21:21:06 +0100
Served asset /application.js - 304 Not Modified (1ms)


Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2013-04-17 21:21:06 +0100
Served asset /application.css - 304 Not Modified (1ms)

网络请求截图

注意:application.js 似乎只有 5 个//=require指令;并且 application.css 主要包含一些简单规则的注释 - 远不及应该存在的内容。

4

3 回答 3

2

我的解决方案是:安装 ruby​​ 版本 1.9.3 并将此版本设置为默认值。重启你的电脑。然后安装rails 3.2.6。然后为您的源代码克隆一个新的存储库(不要重复使用有错误的存储库)。运行捆绑安装。

在此之前,我也尝试使用 rvm 安装 ruby​​ 1.9.2 但它不起作用。然后我尝试使用 ruby​​ 1.9.3 并且它有效。

于 2013-08-20T03:21:15.763 回答
1

我在之前的项目中遇到过类似的问题。我个人会尝试everett1992所说的,因为如果这样可以解决问题,那可能是最好的。但是当它不起作用时我使用的是这条线

config.assets.prefix = "/assets_dev"

到我的 development.rb 文件。

现在,assets_dev 不是一个真正的目录,我从未创建过它。但是它迫使 Rails 看那里,然后当它看不到它时,rails 将从默认位置加载您的资产,就像在 rails 中应该发生的那样。

就像我说的,它可能会起作用,但我确信它不是最好的方法。我也在 OS X 上与其他人一起在跨平台项目上工作,我还没有弄清楚为什么有时会发生这种情况。

于 2013-04-17T21:27:14.340 回答
0

我正在使用 mac os x 10.6.8,我遇到了同样的问题,并尝试了上述所有解决方案。没有任何工作。包括: 1> 更新 gem 2> 移除 rvm,重新安装 rvm、ruby、rails... 3> 配置为 config(dot)assets(dot)prefix = "/assets_dev"

顺便说一句,我检查了 GoogleChrome 控制台,发现在 application(dot)css 中,仍然有如下语句:require_self require_tree。

这意味着这些参考根本不起作用。

同样的事情也发生在 application(dot)js

P/S:我正在使用 rails 3.2.6

于 2013-08-19T10:33:27.477 回答