私は塞がっています! xD私はRailsプロジェクトで作業していましたが、相対パスを使用してアセットにアクセスする際に問題があります。私のコントローラはコントローラとモデルを扱っている間、私の友人が物事のhtml/css側で作業しています。私は私の全体のWebアプリケーションのために使用されているレイアウトの名前final.html.erbを持って、私のアプリ/ビュー/ layoutsディレクトリ内レールにアクセスするための相対パスアセット
app/assets/images/*.jpg
app/assets/stylesheets/*.css
app/assets/javascripts/*.js
app/assets/fonts/*.* (+some more css files in here)
:私の友人は最近私に次のように構造化ファイルのバッチを与えました。私はまた、1ページ(HTMLの本文コンテンツ)を持っていますが、このレイアウトでapp/views/pagesという名前のfinal_page.html.erbをレンダリングしようとしています...ページがロードされるのに必要なルーティングがあります。ただし、final_page.html.erb(イメージ、スタイリング、またはフォントはありません)のコンテキストのみを読み込みます。私がコンソールにアクセスして "rails server"と入力してlocalhost:3000にアクセスすると、ページが表示されます... naked lol。コンソールには、次のように出力します
Started GET "/" for 127.0.0.1 at 2012-07-28 21:15:02 -0700
Connecting to database specified by database.yml
Processing by PagesController#final_page as HTML
Rendered pages/final_page.html.erb within layouts/final (8.4ms)
Completed 200 OK in 82ms (Views: 81.0ms | ActiveRecord: 0.0ms)
Started GET "/assets/stylesheets/style.css" for 127.0.0.1 at 2012-07-28 21:15:04 -0700
ActionController::RoutingError (No route matches [GET] "/assets/stylesheets/style.css"):
actionpack (3.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.6) lib/rails/rack/logger.rb:26:in `call_app'
railties (3.2.6) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.1) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.6) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.1) lib/rack/lock.rb:15:in `call'
actionpack (3.2.6) lib/action_dispatch/middleware/static.rb:62:in `call'
railties (3.2.6) lib/rails/engine.rb:479:in `call'
railties (3.2.6) lib/rails/application.rb:220:in `call'
rack (1.4.1) lib/rack/content_length.rb:14:in `call'
railties (3.2.6) lib/rails/rack/log_tailer.rb:17:in `call'
rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
/usr/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
/usr/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
/usr/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
Rendered /var/lib/gems/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (2.0ms)
私は、問題は、私は相対パスを使用してファイルにアクセスしようとしているということだと思います。私のレイアウトファイルは、次のようになります。また
<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="viewport" content="width=device-width">
<title>:: Final ::</title>
<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">
<link href="../../assets/stylesheets/desktop.css" rel="stylesheet" type="text/css" media="only screen and (min-width:769px) and (max-width:1000px)">
<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>
</head>
<body>
<%= yield %>
</body>
</html>
、私final_page.html.erbファイルの本体内に、私はそうのような...だけでなく相対パスを使用して画像にアクセスしよう:
<img src="../../assets/images/mainImg.jpg" alt="img">
私の友人はこのhtmlのほとんどを書きました。彼はレールで作業している経験がありません。
<%= stylesheet_link_tag "application.css" %>
:
<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>
へ:
<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">
へ:
から:
<%= javascript_include_tag "application.js" %>
01私はそうのような資産に対する要求を変更することを決めました
:
<img src="../../assets/images/mainImg.jpg" alt="img">
へ:
<%= image_tag "mainImg.jpg" %>
この多少画像の負荷として、支援し、スタイリングのはほとんど伝わってきます。しかし、それはそのように見えるものから離れている。私は私の友人は、CSS内の相対的な呼び出しはファイル自体を作るからだと考えている:
body {
background-image: url(../images/bg.jpg);
background-repeat: repeat;
}
私は、URL(<% = asset_path「bg.jpg」%>)等... でこれらを交換しようとしましたそれは効果がありません。私は非常に多くのことを試み、非常に多くの記事を読んできました。私は、Railsが私に相対パスを使用させる方法があるのだろうかと思っています。私は試しました:
config.assets.enabled = false
しかし、それは助けにはなりません...私は間違っていますか?私は友人が自分の仕事のために相対的な道を使うのをやめたいと思っているとは思わない。サイトはRailsの外ではうまくいきますが、私はRailsでwebappのために動作する必要があります。アドバイスをいただければ幸いです。このすべてを読んでいただき、ありがとうございました。
P.S. Ruby 1.9.3、Rails 3.2.6を使用しています
これは実際の50%を解決しました問題xDおかげでたくさん!しかし、スタイリングはまだオフです。私はそれがcssファイルが相対パスを使用しているかどうかわからないですか?私はcssファイルに入り、参照する画像のパスを変更する必要がありますか? body { background-image:url(../ images/bg.jpg); background-repeat:repeat ; } url(../ images/bg.jpg)からurl(/assets/bg.jpg)まで – Orlin
ああ私の言葉は... 100%働いた...私はURL(/ assets/bg.jpg)cssファイル内のすべての画像参照を修正してトリックをしました!!!ありがとうございました – Orlin
ありがとうございました:) – Orlin