gpt4 book ai didi

ruby-on-rails - Rails 6 不提供静态文件

转载 作者:行者123 更新时间:2023-12-05 06:19:04 26 4
gpt4 key购买 nike

我刚刚将一个 Rails 5.1 项目升级到 Rails 6,并最终让它可以呈现 View 。但是,我仍然无法让 Puma (4.3.3) 提供 public/ 文件夹中的静态文件。由于设置困难,我选择使用 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 at /

Error: Undefined variable: "$light-gray". on line 15:10 of app/assets/stylesheets/datepicker.scss color: $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

关于ruby-on-rails - Rails 6 不提供静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60992424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com