gpt4 book ai didi

ruby-on-rails - Heroku 上新的 Rails 5.2.1 应用程序中的 Javascript 无法正常工作

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

我认为在 Heroku 的生产环境中,Rails 5 应用程序中的 JavaScript 文件存在很大问题。虽然它在本地工作

我的配置:

Windows:   10 Education
Rails: 5.2.1
Ruby: 2.4.4p296
Heroku: heroku/7.7.7 win32-x64 node-v10.7.0
postgres: postgres (PostgreSQL) 10.3

我现在将向您展示我为确认它不起作用而采取的步骤,您可以自己尝试。最后,您将获得指向 bitbucket 存储库和 Heroku 上的应用程序的链接。

第 1 步:创建新的 Rails 5 应用程序并切换到根文件夹

> rails new my_app --database=postgresql
> cd my_app

第 2 步:生成 Controller

> rails generate controller static_pages

第 3 步:编辑/app/controllers/static_pages_controller 文件

class StaticPagesController < ApplicationController
def show
end

def destroy
end
end

第 4 步:创建 View 以显示操作

/app/views/static_pages/show.html.erb:

this is the show view

here is a link to the delete action:

<%= link_to t('logout'), logout_path, method: :delete %>

/app/views/static_pages/destroy.html.erb:

this is the destroy view which is called with a link_to method: :delete

第五步:编辑/config/routes.rb文件

Rails.application.routes.draw do
root 'static_pages#show'
get 'static_pages/show'
delete '/logout', to: 'static_pages#destroy'
end

第六步:查看路由

> rails routes
Prefix Verb URI Pattern Controller#Action
root GET / staticpages#show
staticpages_show GET /staticpages/show(.:format) staticpages#show
logout DELETE /logout(.:format) staticpages#destroy
rails_service_blob GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs#show
rails_blob_representation GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create

第 7 步:创建数据库并迁移

> rails db:create
Created database 'my_app_development'
Created database 'my_app_test'

> rails db:migrate

第八步:启动服务器

> rails server

第 9 步:转到 localhost:3000/并单击显示的链接。该链接有效并向服务器发送删除操作

Started GET "/" for 127.0.0.1 at 2018-09-03 18:43:52 +0200
Processing by StaticPagesController#show as HTML
Rendering static_pages/show.html.erb within layouts/application
Rendered static_pages/show.html.erb within layouts/application (12.2ms)
Completed 200 OK in 504ms (Views: 486.7ms | ActiveRecord: 0.0ms)


Started DELETE "/logout" for 127.0.0.1 at 2018-09-03 18:43:57 +0200
Processing by StaticPagesController#destroy as HTML
Parameters: {"authenticity_token"=>"10NHmV8N4tF3O0r/YYtKtKmHm3xthGjPAE51osb7L9skCM5ZoM2RoiCtZD4Crh9d69ndTOeNRMmIW28ipI/z9A=="}
Rendering static_pages/destroy.html.erb within layouts/application
Rendered static_pages/destroy.html.erb within layouts/application (0.0ms)
Completed 200 OK in 90ms (Views: 73.0ms | ActiveRecord: 0.0ms)

第 10 步:创建一个 heroku 应用程序(您必须在您的系统上登录到 heroku)

> heroku create

第 11 步:将您的工作推送到 Heroku

> git add -A
> git commit -m "init"
> git push --set-upstream heroku master

第 12 步:打开您的 Heroku 应用并按照第 9 步的操作进行操作,但由于 JavaScript 似乎无法正常工作而失败

(...) Started GET "/" for 84.147.254.28 at 2018-09-03 16:47:44 +0000
(...) Processing by StaticPagesController#show as HTML
(...) Rendering static_pages/show.html.erb within layouts/application
(...) Rendered static_pages/show.html.erb within layouts/application (9.2ms)
(...) Completed 200 OK in 27ms (Views: 13.7ms)
.
.
.
(...) Started GET "/logout" for 84.147.254.28 at 2018-09-03 16:48:05 +0000
(...) ActionController::RoutingError (No route matches [GET] "/logout"):

这在 Rails 或 Heroku 方面都是一个明显的错误,正如您所看到的,我所做的只是创建一个全新的 Rails 应用程序并更改路由,生成一个 Controller 并为 Controller 操作创建 2 个 View 。

如果您想查看该应用程序的所有源代码以及部署到 heroku 的应用程序,请使用以下链接。

您可以在此处查看源代码:BitBucket Repo

应用在这里:Heroku app

有没有其他人在使用 Rails 和 Heroku 时遇到过这种困难,或者我能做些什么来让它工作?

编辑:通过删除不必要的日志信息和时间戳,使第 12 步的输出更加清晰

最佳答案

我解决了我的问题:是 uglifier gem 导致了问题,因为它无法正常工作。我只是一个初学者,回顾这个​​ gem 应该是我需要检查的第一件事,因为它进行了 JS 压缩。

现在 JS 运行得很好。以下是我在 GemFile 中为使其正常工作所做的更改:

来自

gem 'uglifier', '>= 1.3.0'

gem 'uglifier', '~> 3.0.4'

uglifier gem 版本是4.1.18,导致生产环境出现这个JS错误。

希望这可以帮助其他人确定他们在 Heroku 上的 JS 错误

关于ruby-on-rails - Heroku 上新的 Rails 5.2.1 应用程序中的 Javascript 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154149/

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