小编Ali*_*i H的帖子

如何在Nginx / Rails上为apple-app-site-association文件设置正确的内容类型

为了设置iOS应用程序的通用链接,我创建了一个apple-app-site-association文件,并将其放置在Rails应用程序的/ public目录中。

我可以将其卷曲在正确的地址,但是它返回错误的内容类型。您可以在此处的响应中看到而不是application/jsonapplication/pkcs7-mime它返回application/octet-stream

curl -i https://example.com/apple-app-site-association

HTTP/1.1 200 OK
Server: nginx/1.10.1
Content-Type: application/octet-stream
Content-Length: 245
Last-Modified: Mon, 21 Nov 2016 12:45:00 GMT
Strict-Transport-Security: max-age=31536000

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "APPPREFIX.com.mycompany.app",
        "paths": [
          "/home*"
        ]
      }
    ]
  }
Run Code Online (Sandbox Code Playgroud)

我正在尝试在Nginx配置中指定Content-Type:

/etc/nginx/sites/sites-available/sitename: 

server {
   ...
   location /apple-app-site-association {
      default_type application/pkcs7-mime;
   }
}
Run Code Online (Sandbox Code Playgroud)

我保存了此更改并重新启动了Nginx。这与curl的响应没有任何区别。我也尝试location /public/apple-app-site-association {}了其他一些变体,但没有任何效果。

设置nginx以提供具有正确内容类型的此文件的正确方法是什么?

nginx ios ios-universal-links

5
推荐指数
4
解决办法
5780
查看次数

如何在 Rails 中对 HTTP 标头中的 UTF-8 进行编码/解码?

我正在使用“将 Rails flash 消息插入 HTTP 标头以显示 Ajax 响应错误”模式,如下所示:

\n\n

控制器:

\n\n
 def flash_as_header\n   return unless request.xhr?\n   [:error, :warning, :notice].each do |type|\n    if flash[type]\n     response.headers["X-Ajax-#{type.to_s.humanize}"] = flash[type]\n    end\n   end\n end\n
Run Code Online (Sandbox Code Playgroud)\n\n

jQuery:

\n\n
 $(document).ajaxComplete(function(response, status, xhr) {\n    var types = ["Error", "Notice", "Warning"];\n    for (i = 0, l = types.length; i < l; ++i) {\n        msg = status.getResponseHeader("X-Ajax-" + types[i]);\n        if(msg) {\n            break;\n        }\n    }\n    if(msg) {\n        $(\'.flash-error\').text(msg).removeClass(\'is-hidden\');\n    }\n });\n
Run Code Online (Sandbox Code Playgroud)\n\n

这可行,但我遇到了字符编码问题。Flash 消息包含 UTF-8 特殊字符,并且目标 HTML 文档是 UTF-8。

\n\n

这是一个示例字符串,它应该出现:

\n\n …

jquery encoding ruby-on-rails utf-8

4
推荐指数
1
解决办法
1374
查看次数

如何恢复已签入到 git 的 Rails 迁移

在我的development/feature分支上,我有一个提交20150818113106_add_team_id_to_account.rb(将一列添加到Account)&schema.rb应用迁移的结果。此提交已被推送,& 也存在于origin/development/feature.

现在我想恢复此更改 -Account毕竟我不想添加此列。我不知道我是否应该因此恢复 git 提交,或者运行db:migrate:down& 提交结果,或者两者兼而有之。

git ruby-on-rails rails-migrations

3
推荐指数
1
解决办法
2938
查看次数

从 Android 设备连接到本地服务器

我正在开发一个连接到 Rails Web 服务器的 Android 应用程序。我需要针对我的计算机上服务器的开发版本测试该应用程序。为了工作,服务器需要传入指定域的请求。

请求发送至localsite.com:3000

对于浏览器测试,我计算机上的主机文件处理:

127.0.0.1    localsite.com 
Run Code Online (Sandbox Code Playgroud)

对于从 Android 模拟器进行测试,模拟设备中的主机文件处理:

10.0.2.2    localsite.com #Localhost from an Android emulator
Run Code Online (Sandbox Code Playgroud)

现在我想从物理设备(启用了开发人员工具但未 root 的 Nexus6。我的偏好是保持这种状态)对其进行测试。我可以使用 IP 和端口 ( 192.168.1.190:3000) 从电话连接到我的服务器,但服务器上的任何内容都不起作用,因为它需要localsite.com:3000.

据我了解,以下是我的选择:

选项1:编辑设备的hosts文件

从设备获取主机文件:

adb pull /system/etc/hosts ~/device_hosts/nexus6
Run Code Online (Sandbox Code Playgroud)

编辑主机文件:

192.168.1.190       localsite.com    #IP of workstation on local network
Run Code Online (Sandbox Code Playgroud)

尝试将主机文件推送回设备:

adb push ~/device_hosts/nexus6/hosts /system/etc
Run Code Online (Sandbox Code Playgroud)

此操作失败,并出现错误failed to copy: Read-only file system

adb remount也失败了,如下adb rootadbd cannot run as root in production builds

问题第1部分:有没有办法在不永久root的情况下编辑设备的hosts文件?

选项 …

android

3
推荐指数
1
解决办法
5924
查看次数

psql:严重:数据库“ db_name”当前不接受连接

我在Postgres 9.3.5数据库上运行了Rails应用程序。在我的开发环境中,它已经启动并运行了一段时间。今天,我进行了Rails迁移,然后当我尝试运行时rake db:reset,收到错误消息:

 psql: FATAL: database "db_name" is not currently accepting connections
Run Code Online (Sandbox Code Playgroud)

现在,这是我尝试运行任何psql或rake db任务时的唯一响应。例如:

  $ psql -d db_name
  psql: FATAL:  database "db_name" is not currently accepting connections
Run Code Online (Sandbox Code Playgroud)

我可以在数据库列表中看到db_name,并且它具有正确的所有者。

是什么导致“当前不接受连接”状态,如何解决?

postgresql ruby-on-rails

2
推荐指数
2
解决办法
3967
查看次数