簡體   English   中英

Rails 6 不提供 static 文件

[英]Rails 6 not serving static files

我剛剛將一個 rails 5.1 項目升級到 Rails 6,最后讓它渲染視圖。 但是,我仍然無法讓 Puma (4.3.3) 從public/文件夾中提供 static 文件。 由於設置困難,我選擇使用 Sprockets 4.0 而不是 Webpack。 我收到此錯誤:

Sprockets::Rails::Helper::AssetNotFound - The asset "intro_video.mp4" is not present in the asset pipeline.:
  app/views/home/_intro_video.html.haml:1
  app/views/home/index.html.haml:52

Started POST "/__better_errors/82e7c6297114c48a/variables" for 127.0.0.1 at 2020-04-02 09:05:05 -0400

我在開發環境中並已將config.serve_static_assets = true添加到我的config/environments/development.rb並重新啟動服務器。 有問題的頁面鏈接到位於public/文件夾根目錄中的“intro_video.mp4”。 如果我將localhost:3000/intro_video.mp4直接放入 Firefox 我得到一個ActionController::RoutingError: No route matches [GET] \"/intro_video.mp4\"錯誤。

任何幫助表示贊賞。 謝謝你。

編輯:我嘗試將intro_video.mp4文件移動到我的app/assets/images目錄,但現在我遇到了這個奇怪的問題:

SassC::SyntaxError 在 /

錯誤:未定義的變量:“$light-gray”。 在 app/assets/stylesheets/datepicker.scss 的第 15:10 行顏色:$light-gray;

這意味着我的application.scss中的@import 'variables'行不起作用,但那里引用的所有其他文件都起作用。 事實上,如果我將任何文件添加到我的app/assets/images目錄,就會發生這種情況。 這對我來說毫無意義...

編輯(再次):所以我通過從app/assets/config/manifest.js中刪除它來修復 CSS 問題

//= link_directory ../stylesheets .css

...這影響了我的樣式表的加載順序仍然無法從public/目錄中獲得任何工作,所以我將通過將所有內容移動到app/assets/images來解決。

對於 Rails 6,以下應該有效:

# config/environments/production.rb
config.public_file_server.enabled = true

我希望這個文檔適合你。

導軌為 STATIC 文件提供 NGINX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM