Sprockets::Rails::Helper::AssetNotPrecompiled 在 ResqueWeb 上
Sprockets::Rails::Helper::AssetNotPrecompiled in ResqueWeb
我已经尝试解决此问题大约两天了,但我无处可去。我正在尝试显示 resque-web 页面,但我一直 运行ning 进入错误
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
gem 版本
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 正在 运行ning 并接受我的 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 的更多信息。
如果你想使用 resque-web 那么为了解决这个问题你需要添加 assets.rb:
Rails.application.config.assets.precompile += %w[idle lifebuoy poll rails working].map { |img| "resque_web/#{img}.png" }
Rails.application.config.assets.precompile += %w[resque_web/application.css]
Rails.application.config.assets.precompile += %w[resque_web/application.js]
随后您需要运行:rake assets:precompile
这个问题应该已经解决了。
我已经尝试解决此问题大约两天了,但我无处可去。我正在尝试显示 resque-web 页面,但我一直 运行ning 进入错误
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
gem 版本
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 正在 运行ning 并接受我的 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 的更多信息。
如果你想使用 resque-web 那么为了解决这个问题你需要添加 assets.rb:
Rails.application.config.assets.precompile += %w[idle lifebuoy poll rails working].map { |img| "resque_web/#{img}.png" }
Rails.application.config.assets.precompile += %w[resque_web/application.css]
Rails.application.config.assets.precompile += %w[resque_web/application.js]
随后您需要运行:rake assets:precompile
这个问题应该已经解决了。