【问题标题】:Why can't I display my ruby on rails app on localhost?为什么我不能在本地主机上的 rails 应用程序上显示我的 ruby​​?
【发布时间】:2019-11-30 07:56:19
【问题描述】:

我正在尝试从 codecademy 显示一个非常简单的应用程序,这是我在浏览器中遇到的错误:

PagesController#welcome 缺少请求格式的模板:text/html

注意! 除非另有说明,Rails 期望一个动作来渲染一个同名的模板, 包含在以其控制器命名的文件夹中。如果此控制器是响应 204(无内容)的 API, 不需要模板,则尝试通过浏览器访问时会出现此错误, 因为我们希望为此类请求呈现 HTML 模板。如果是这样,请继续。

My directory

pages_controller.rb

class PagesController < ApplicationController
    def welcome
    end
end

routes.rb

Rails.application.routes.draw do
root ‘pages#welcome’
end

application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title>Portfolio</title>
    <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,500,700&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

  </head>

  <body>
    <%= yield %>
  </body>
</html>

welcome.html.erb

<h1>Hello</h1>

运行“rails server”并在我的浏览器中出现上述错误。据我所知,这些文件位于正确的位置和正确的类型... Rails v 6.0.1

【问题讨论】:

  • 您的控制器似乎包含黑白引号,删除引号然后刷新页面
  • welcome.html.erb 是否位于您的views 目录内的pages 目录中?
  • 抱歉,它们不在我程序中的引号之间。是的,welcome.html.erb 在 app/views/pages 中。
  • 你能在你的终端中运行:rake routes 并显示给我们响应吗?
  • 此问题属于“无法复制”类别。如果从表面上看,这个问题中的代码无法解释错误,我猜它可以归因于简单的人为错误,例如文件名或路径中的拼写错误。但这确实是微不足道的东西,只需运行 rails g controller pages welcome 即可生成,而不是花费大量时间进行故障排除。

标签: ruby-on-rails ruby-on-rails-6


【解决方案1】:

显然问题在于我的项目位于一个文件夹中,该文件夹的标题中有一个空格。

将项目移动到其他文件夹后,它现在可以工作了。

这是在 Rails 6.0.1 上

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 2012-05-18
    • 1970-01-01
    • 2013-08-05
    相关资源
    最近更新 更多