막혔습니다! xD 레일스 프로젝트를 진행하면서 상대 경로를 사용하여 자산에 액세스하는 데 문제가 있습니다. 컨트롤러와 모델을 처리하는 동안 내 친구가 html/CSS 측면에서 작업하고 있습니다. 내 전체 웹 애플리케이션에 사용되는 레이아웃 이름 final.html.erb을 가지고, 내 app/views/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/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의 대부분을 썼고, 그는 레일 작업 경험이 0입니다. 에서
<%= 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">
사람 : 보낸 사람 : 23,516,
<%= image_tag "mainImg.jpg" %>
이 다소 이미지의 부하로, 도움, 그리고 스타일의 아주 작은을 통해 제공; 그러나 그것은 그것이 보이는 것처럼 보이는 것과는 거리가 있습니다. ...
body {
background-image: url(../images/bg.jpg);
background-repeat: repeat;
}
내가 URL과 등 (<퍼센트 = asset_path 'bg.jpg'%를>)이 교체 시도했다 : 나는 CSS 파일 자체 내에서 내 친구가 상대 호출을하기 때문에 그것의 생각 해요 하지만 아무런 효과가 없습니다. 나는 많은 것을 시도했고, 많은 게시물을 읽었습니다. Rails가 상대 경로를 사용할 수있는 방법이 있는지 궁금합니다. 나는 시도했다 :
config.assets.enabled = false
그러나 그것은 도움이되지 않는다. .. 제발 나는 무엇을 잘못하고 있냐? 나는 친구가 자신의 일에 상대 경로를 사용하는 것을 멈추고 싶어한다고 생각하지 않는다.이 사이트는 Rails 외부에서 잘 작동하지만, 나는 webapp을 위해 Rails와 함께 작업해야한다. 모든 조언을 크게 주시면 감사하겠습니다. 이 모든 것을 읽으면서 인내심을 가져 주셔서 감사합니다.
P. 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