Ruby on rails 为什么我的链接不起作用?
我刚刚将我的站点从本地webrick服务器部署到一个真正的服务器Ruby on rails 为什么我的链接不起作用?,ruby-on-rails,git,deployment,Ruby On Rails,Git,Deployment,我刚刚将我的站点从本地webrick服务器部署到一个真正的服务器 http://92.51.243.6/ 我很高兴我自己成功地部署了它,但当我意识到我的大多数链接都不起作用时,它很快就消失了。(我知道Facebook的问题,现在我真正关心的是链接)-关于我们,常见问题解答,联系我们,在“注册”页面上,链接“条款和条件”显示错误,“对不起,但出了问题” 我与代码建立了链接: <div id = "menu"> <ul id = "home_page_links"&
http://92.51.243.6/
我很高兴我自己成功地部署了它,但当我意识到我的大多数链接都不起作用时,它很快就消失了。(我知道Facebook的问题,现在我真正关心的是链接)-关于我们,常见问题解答,联系我们,在“注册”页面上,链接“条款和条件”显示错误,“对不起,但出了问题”
我与代码建立了链接:
<div id = "menu">
<ul id = "home_page_links">
<li><%= link_to "Home",about_us_path, :remote => true %></li>
<li><%= link_to "About Us",about_us_path, :remote => true %></li>
<li><%= link_to "FAQ", faq_path, :remote => true %></li>
<li><%= link_to "Contact Us", contact_us_path, :remote => true %></li>
</ul>
</div>
还有我的scripts.js文件,它提供ajax功能:
//I want to load content into the '.page-content' class, with ajax
var ajax_loaded = (function(response) {
$(".page-content")
.html($(response).filter(".page-content"));
$(".page-content .ajax").on("click",ajax_load);
});
//the function below is called by links that are described
//with the class 'ajax', or are in the div 'menu'
var history = [];
// var current_url_method;
var ajax_load = (function(e) {
//console.log('load ajax on clicks. This always works.');
e.preventDefault();
history.push(this);
var url =$(this).attr("href");
var method = $(this).attr("data-method");
// if (current_url_method != url + method) {
// console.log('You got to the url + method part. But sometimes I dont get this far.');
// current_url_method = url + method;
$.ajax({
url: url,
type: method,
// async: false,
success: ajax_loaded
// $('html, body').animate({ scrollTop: 0 }, 0);
});
// }
});
//monitor for clicks from menu div, or with
//the ajax class, or the 'submit button'.
//why the trigger?
$(document).on("ready", function(){
$("#menu a").on("click",ajax_load);
$(".ajax").on("click",ajax_load);
$("#menu a.main").trigger("click");
});
非常感谢您的帮助。好的,我将逐步向您解释如何在rails中执行ajax请求,至少这是我的方法,我不会强迫您执行同样的操作 1。链接和路径
<%= link_to "FAQ", faq_path, :remote => true %>
3。视图和js.erb
至于现在,你可能在app/views/static\u pages/
中有一个faq.html.erb
,这个页面可以处理html请求,但是当我们作为ajax这样做时,它会查找faq.js.erb
,这就是你处理javascript的地方
首先,我会将您的faq.html.erb
内容移动到部分\u faq\u content.html.erb
中,并且在faq.html.erb
中,我只会将其呈现为部分,因为我们将使用相同的部分,以防出现html请求(对于在浏览器中禁用js的用户)
现在我承认,当点击faq链接时,你想用faq页面的内容替换page content
div中的内容。为此,在您的faq.js.erb
(如果没有,请创建一个)中,您将编写:
$('.page-content').html('<%= j render('faq_content') %>');
因此,您最好在尝试使用我的教程时删除js:),以确保不会发生冲突。如果你做得很好,你应该为你的静态页面得到一个ajax呈现。如果你对此有问题,请告诉我。祝您好运。您是否正在生产环境中部署应用程序 错误是: ActionView::Template::Error(即未预编译css): 这意味着您需要预编译所有资产。请运行此命令并重新启动服务器
bundle install
bundle exec rake assets:clean
bundle exec rake assets:precompile
bundle exec rake assets:precompile
如需更多脱轨,请遵循rails部署指南中所述的基本步骤。
您是否在生产环境中部署应用程序 错误是: ActionView::Template::Error(即未预编译css): 这意味着您需要预编译所有资产。请运行此命令并重新启动服务器
bundle install
bundle exec rake assets:clean
bundle exec rake assets:precompile
bundle exec rake assets:precompile
production.log
文件中没有任何内容,也没有任何http日志文件?如果您向我们提供有关如何创建链接的更多信息,我将不胜感激。您好,我直到现在才知道production.log(新部署)。production.log具体做什么?我在终端中看到,当我点击我的链接时,它会发生变化。我用production.log中的一段代码编辑了上面的问题。如何修复内部服务器错误?如何预编译ie.css?谢谢。可能是的副本。您是否预编译了资产?看来你没有。在服务器上运行rakeassets:precompile。为rmagnum干杯,谢谢你们的帮助。我们很快会调查的。这当然不同于我所认为的ajax方式!如果它能工作的话,它会更干净更短。“提交”按钮可能会有问题,但当我开始使用时,我会担心的。我已经将它标记为1,如果它有效,我将接受你的答案。使用提交按钮没有什么困难,你将在表单中添加remote:true,你在表单中执行的操作将与链接一样使用ajax,例如,如果你创建用户表单,用户控制器中的创建操作将使用js响应,这意味着您需要app/views/users/create.js.erb,并在其中添加所需的js。但是正如你所说的,当你开始做的时候,你会担心的;I don’我不能像我想的那样工作。有人说要在application.css.scss中放置*=require_树并重新部署,所以我将给出一个go.*=require_树将添加每个css文件。我以为你是在appliation.css.scss文件中写的,我从其他人那里继承了这个rails项目。我当然不是rails方面的专家,但在我的application.css.scss文件中,我看到*=除了ie.css.scss,同一文件夹中的每个scss文件都需要。这可能是问题所在吗?我的意思是,只需添加*=需要ie并重新部署?你可以。。这就是问题所在
bundle install
bundle exec rake assets:clean
bundle exec rake assets:precompile
bundle exec rake assets:precompile