为了设置iOS应用程序的通用链接,我创建了一个apple-app-site-association文件,并将其放置在Rails应用程序的/ public目录中。
我可以将其卷曲在正确的地址,但是它返回错误的内容类型。您可以在此处的响应中看到而不是application/json或application/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以提供具有正确内容类型的此文件的正确方法是什么?
我正在使用“将 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\nRun Code Online (Sandbox Code Playgroud)\n\njQuery:
\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 });\nRun Code Online (Sandbox Code Playgroud)\n\n这可行,但我遇到了字符编码问题。Flash 消息包含 UTF-8 特殊字符,并且目标 HTML 文档是 UTF-8。
\n\n这是一个示例字符串,它应该出现:
\n\n …在我的development/feature分支上,我有一个提交20150818113106_add_team_id_to_account.rb(将一列添加到Account)&schema.rb应用迁移的结果。此提交已被推送,& 也存在于origin/development/feature.
现在我想恢复此更改 -Account毕竟我不想添加此列。我不知道我是否应该因此恢复 git 提交,或者运行db:migrate:down& 提交结果,或者两者兼而有之。
我正在开发一个连接到 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.
据我了解,以下是我的选择:
从设备获取主机文件:
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 root:adbd cannot run as root in production builds
问题第1部分:有没有办法在不永久root的情况下编辑设备的hosts文件?
我在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,并且它具有正确的所有者。
是什么导致“当前不接受连接”状态,如何解决?