我有foobar具有相對路徑的應用程式。例如:https://my_main_app.com/foobar
在config/environments/production.rb 中,我使用以下設定對此進行了說明:
config.relative_url_root = '/foobar'
我的css、js和圖片資源都在assets目錄下:
-- app
| -- assets
| -- images
| -- my_img.jpg
| -- javascripts
| -- application.js
| -- stylesheets
| -- application.css.scss
我運行rake assets:precompile RAILS_ENV=production,一切似乎都可以編譯。css、javascript 和影像都被放入public/assets目錄,并附加了一個摘要:
.
| -- app
| -- public
| -- assets
| -- application-<digest1234>.css.gz
| -- application-<digest3456>.js.gz
| -- my_img-<digest5678>.jpg
當我訪問應用程式時:
- css很好用
- js 很好用
- 該影像是 404 未找到。
加載資源失敗:服務器回應狀態為 404(未找到) https://my_main_app.com/assets/my_img-.jpg
我知道問題是什么:問題在于影像:它沒有附加foob??ar的相對路徑。圖片的正確路徑是:
https://my_main_app.com/foobar/assets/my_img-<digest5678>.jpg
其他細節:
我正在像這樣加載檔案。在app/views/layouts/application.html.erb我有這條線:
<div id="header"></div>
然后在app/assets/stylesheets/application.css.scss我有這一行:
#header {
background-image: image-url('my_img.jpg');
background-repeat: no-repeat;
height: 100px;
background-size: 100%;
}
所以看起來當資產被編譯時,它不知道相對路徑。
我該如何解決?
uj5u.com熱心網友回復:
我讓它作業了,但我事先做了很多事情。我不清楚究竟是什么把戲。以下是我知道我做過的事情:
我完全清除了我的 cookie 和快取。
我洗掉了圖片 public/assets
我重新啟動了應用程式服務器(乘客)。
我重新編譯了資產,但是這次我對命令做了一些微小的調整(使用rails而不是rake并且我在前面指定了環境變數)。
RAILS_ENV=production rails assets:precompile
我不清楚究竟是什么把戲,但我把它放在這里,以防有人遇到同樣的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/383476.html
上一篇:Stripe-當我使用零計劃更新訂閱時PaymentIntent為空
下一篇:帶有\的Ruby文本變數
