gpt4 book ai didi

ruby - Jruby Warbler 在 Tomcat 上为 Sinatra 生成了 war ——未找到查看文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:26 24 4
gpt4 key购买 nike

我在使用 Warbler 生成的 WAR 部署到 Tomcat 时遇到了以下问题。当我运行“rake war”时,它会正确生成要部署的 war 文件;然而,在部署到 Tomcat 并导航到应用程序库时,我收到以下消息:

Errno::ENOENT at /micro_reg_90day/login No such file or directory - jndi:/localhost/micro_reg_90day/WEB-INF/views/login.erb file: RubyFile.java location: initialize line: 464

在浏览器中。奇怪的是,当我转到文件系统中扩展的 webapp 时——我在 webapp/WEB-INF/views 目录中看到了这个:

MacBook-Pro:views ejlevin1$ ls -l
-rw-r--r-- 1 ejlevin1 wheel 740 Dec 9 16:20 login.erb
-rw-r--r-- 1 ejlevin1 wheel 1309 Dec 9 16:20 next_steps.erb
-rw-r--r-- 1 ejlevin1 wheel 8957 Dec 9 16:20 ninety_day.erb
-rw-r--r-- 1 ejlevin1 wheel 10237 Dec 9 16:20 try_it_tuesdays.erb

可以看到,login.erb文件正在被打包进war;但是,在尝试调用

时未被 JRuby 发现
render :erb, :login

在 Sinatra 应用程序中。以下是我的config/warbler.rb:

Warbler::Config.new do |config|
config.dirs += ['views']
config.includes = FileList["app.rb","init.rb"]
config.gem_dependencies = true
config.webxml.rack.env = ENV['RACK_ENV'].nil? || ENV['RACK_ENV'] =='' ? 'development' : ENV['RACK_ENV']
config.webxml.jruby.compat.version = "1.9"
end

我唯一注意到的是 Tomcat 告诉我的路径未找到以 jndi 为前缀:——这是否表明 warbler 应该将 .erb 文件打包为 war ?

感谢您的帮助!

最佳答案

事实证明,这与我在我的 sinatra 应用程序中使用的 config.ru 文件有关。以下 config.ru 文件有效:

require 'rubygems'

load File.join(File.dirname(__FILE__), 'app.rb')

set :run, false
set :public_folder, './public'
set :views, './views'

run App

我以前没有 set :variable 声明。

关于ruby - Jruby Warbler 在 Tomcat 上为 Sinatra 生成了 war ——未找到查看文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452541/

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