微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sprockets::Rails::Helper::AssetNotPrecompiled 在 ResqueWeb 中

如何解决Sprockets::Rails::Helper::AssetNotPrecompiled 在 ResqueWeb 中

我已经尝试解决这个问题大约两天了,但我无处可去。我正在尝试显示 resque-web 页面,但我一直遇到错误

Sprockets::Rails::Helper::AssetNotprecompiled in ResqueWeb::Overview#show

显示的消息

ActionView::Template::Error (resque_web/plugins/resque_scheduler/application.css):
    12:         file_path = "#{p.name.underscore.downcase}/application.css"
    13:         if (Rails.application.assets && Rails.application.assets.find_asset(file_path)) ||
    14:            (Rails.application.assets_manifest && Rails.application.assets_manifest.assets[file_path])
    15:           stylesheet_link_tag "#{p.name.underscore.downcase}/application"
    16:         end
    17:       end.join("\n").html_safe
    18:   %>

从堆栈调用什么

     def raise_unless_precompiled_asset(path)
        raise Helper::AssetNotprecompiled.new(path) if @check_precompiled_asset && !precompiled?(path)
      end
  end
end

宝石版本

resque (2.0.0)
resque-multi-job-forks (0.5.1)
resque-scheduler (4.4.0)
resque-web (0.0.12)
sprockets (4.0.2,3.7.2)
sprockets-rails (3.2.2)

routes.rb

require "resque_web"
require 'resque-scheduler'
require 'resque/scheduler/server'

Rails.application.routes.draw do
  mount ResqueWeb::Engine => "/resque_web"
  root to: "pages#home"
.
.
.
end

理想情况下,它是 'admin/resque_web' 用于生产目的。

我已经通过 "bitterloa" https://github.com/resque/resque-web/issues/106 尝试了这个修复,因为我的文件结构是使用 webpacker 设置的

我查看了 development.rb 以检查调试是否错误

在使用 sprock-rails rails assets:clobber

销毁资产后,我重新编译了它们

任何我可以查看的想法,或者如果其他人遇到这个问题,请伸出援手。

从终端运行命令显示 resque 正在运行并接受来自我的 scheduler.yml 文件的调度作业我只是无法让它工作的 css。

如果您需要更多信息,请告诉我。

谢谢

解决方法

resque 带有内置服务器。您不需要 resque-web,而且似乎没有维护(最后一次提交是在 2018 年)。

让我们试试这个:

gem 'resque',require: 'resque/server'

#  routes.rb 
mount Resque::Server.new,:at => "admin/resque"

确保您只允许管理员访问生产中的该页面。为此,您可以阅读 Route Constraints 来执行以下操作:

constraints IsResqueAllowed do
  mount Resque::Server.new,:at => "admin/resque"
end

class IsResqueAllowed 
 def self.matches?(request)
   # use the request to do something
 end
end
 

有关保护路线 here 的更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?