- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Pow 和 Nginx 为开发中的 Rails 4 应用程序提供服务。一个简单的文件上传返回 500 错误并且请求没有到达 Rails Controller 。我认为是这种情况,因为 Rails 日志中没有提到请求。没有提及错误,我不确定这里出了什么问题。
我从上传 Ajax 文件开始,但用一个同样不起作用的简单表单替换了它。
试过这个
然后去了这个
当前头像.html.erb
<%= form_for @user, html: { multipart: true }, method: "post", url: '/settings/avatar/update', class: "", id: "update_avatar" do |f| %>
<%= f.file_field :avatar, class: 'js-upload-photo-button js-change-avatar-btn', accept: 'image/png,image/gif,image/jpeg,image/jpg' %>
<%= f.submit "Upload" %>
<% end %>
127.0.0.1 - - [01/Feb/2014:11:28:26 +0530] "POST /settings/avatar/update HTTP/1.1" 500 643 "https://allotrop.dev/settings/avatar" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
[Sat Feb 01 2014 11:28:26 GMT+0530 (IST)] INFO [127.0.0.1] GET allotrop.dev /500.html
post '/settings/avatar/update', to: 'settings#update_avatar'
/usr/local/Cellar/nginx/1.4.0/logs/error.log
2014/02/01 13:05:54 [crit] 8787#0: *85813 open() "/usr/local/var/run/nginx/client_body_temp/0000000010" failed (13: Permission denied), client: 127.0.0.1, server: *.dev, request: "POST /settings/avatar/update HTTP/1.1", host: "allotrop.dev", referrer: "https://allotrop.dev/settings/avatar"
最佳答案
问题不在于 Rails,而在于 Nginx,这在 nginx error.log
中非常明显。 .这个问题帮助我理解了我正在处理的问题 - Rails 3 + carrierwave + nginx = permission denied .
Nginx 使用 client_body_temp_path
directive指定它将临时存储来自用户请求的上传文件的位置。 Homebrew 已将其默认设置为 /usr/local/var/run/nginx
.此文件夹还包含 fastcgi_temp
, proxy_temp
, scgi_temp
和 uwsgi_temp
为了我。 Nginx 工作进程与用户 nobody
一起运行他们无法访问这些文件夹。我将所有这些文件夹添加到 nobody
用户,但这并没有帮助。
最后,我做到了client_body_temp_path /tmp/nginx/;
在我的 nginx.conf
的 HTTP 模块中让它工作。
做一个ls -l
节目drwx------ 2 nobody wheel 68 Feb 1 14:44 nginx
我不知道为什么这在 /tmp
内有效而不是在原始 /var/run/nginx
中.我相信当我使用其他临时文件夹或在生产中时我会遇到类似的问题。如果发生这种情况,将更新此线程。
我建议将其他相关日志(如 nginx 访问和错误日志、pow 访问和应用程序日志)符号链接(symbolic link)到 /log
。 Rails 应用程序的目录。当您遇到棘手的错误时,它有助于查找其中一个错误。
关于ruby-on-rails - 在使用 Pow 和 Nginx 开发的 Rails 4 中,文件上传不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21494979/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!