ฉันพยายามนำแอปไปใช้งานจริง แต่รูปภาพและเส้นทางเนื้อหา css ไม่ทำงาน
นี่คือสิ่งที่ฉันกำลังทำอยู่:
- เนื้อหารูปภาพอยู่ใน /app/assets/images/image.jpg
- สไตล์ชีตอยู่ใน /app/assets/stylesheets/style.css
- ในเลย์เอาต์ของฉันฉันอ้างอิงไฟล์ css ดังนี้:
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
- ก่อนที่จะรีสตาร์ทยูนิคอร์นฉันรัน
RAILS_ENV=production bundle exec rake assets:precompile
และมันก็สำเร็จและฉันเห็นไฟล์ที่มีลายนิ้วมือในpublic/assets
ไดเรกทอรี
เมื่อฉันเรียกดูไซต์ของฉันฉันได้รับข้อผิดพลาด 404 ไม่พบสำหรับmysite.com/stylesheets/styles.css
.
ผมทำอะไรผิดหรือเปล่า?
อัปเดต: ในเค้าโครงของฉันมีลักษณะดังนี้:
<%= stylesheet_link_tag "bootstrap.min", media: "all", "data-turbolinks-track" => true %>
<%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
แหล่งสร้างคือ:
<link data-turbolinks-track="true" href="/stylesheets/bootstrap.min.css" media="all" rel="stylesheet" />
<link data-turbolinks-track="true" href="/stylesheets/styles.css" media="all" rel="stylesheet" />
<script data-turbolinks-track="true" src="/assets/application-0c647c942c6eff10ad92f1f2b0c64efe.js"></script>
ดูเหมือนว่า Rails จะมองหาไฟล์ css ที่คอมไพล์ไม่ถูกต้อง แต่มันสับสนมากว่าทำไมมันถึงทำงานอย่างถูกต้องสำหรับจาวาสคริปต์ (สังเกต/assets/****.js
เส้นทาง)
<%= stylesheet_link_tag "style", media: "all", "data-turbolinks-track" => true %>
public/assets
และ 2. ตรวจสอบอีกครั้งว่าไม่มีคำสั่งอื่นใดที่พยายามโหลดไฟล์ css นั้น (น่าจะฮาร์ดโค้ด)
.home {background: #FFF url(<%= image_path 'hippopotamus.jpg' %>) no-repeat; }
นั้นจริง ๆ แล้วสามารถเปลี่ยนเป็น sprocket ด้วย.home {background: #FFF url(image-path('hippopotamus.jpg')) no-repeat; }
. บางทีคุณอาจลองถ้าสิ่งนี้ช่วยได้
stylesheet_link_tag
มันมากกว่าการใช้