小编kru*_*kid的帖子

nginx上传client_max_body_size问题

我正在运行nginx/ruby​​-on-rails,我有一个简单的多部分表单来上传文件.一切正常,直到我决定限制我想要上传的文件的最大大小.为此,我将nginx设置client_max_body_size1m(1MB)并期望在该规则中断时响应HTTP 413(Request Entity Too Large)状态.

问题是,当我上传一个1.2 MB的文件,而不是显示HTTP 413错误页面时,浏览器会挂起一点,然后在"页面加载时重置连接"消息时死掉.

我已经尝试过nginx提供的每一个选项,似乎没什么用.有没有人对此有任何想法?

这是我的nginx.conf:

worker_processes  1;
timer_resolution  1000ms;
events {
    worker_connections  1024;
}

http {
    passenger_root /the_passenger_root;
    passenger_ruby /the_ruby;

    include       mime.types;
    default_type  application/octet-stream;

    sendfile           on;
    keepalive_timeout  65;

    server {
      listen 80;
      server_name www.x.com;
      client_max_body_size 1M;
      passenger_use_global_queue on;
      root /the_root;
      passenger_enabled on;

      error_page 404 /404.html;
      error_page 413 /413.html;    
    }    
}
Run Code Online (Sandbox Code Playgroud)

谢谢.


**Edit**

环境/ UA:Windows XP/Firefox 3.6.13

file-upload http nginx

114
推荐指数
3
解决办法
20万
查看次数

为什么publish_stream未在扩展权限引用中列出?

我想知道为什么没有publish_stream的权限或任何其它许可的参考页.

这是一个文档错误还是可疑的东西?它仍然在这里那里被提及,但在任何概述中都没有提到(这似乎只涉及publish_actions许可).这是怎么回事?

permissions publish facebook

8
推荐指数
2
解决办法
1万
查看次数

使用 webpack 生成使用 JS 包的 HTML 资源

问题:我使用 Webpack,我需要在 IFRAME 中显示页面的一部分。IFRAME 内容的标记是静态的,它包括一些 JS 库和一些自定义 JS 逻辑。

我的想法是:我想将 IFRAME 中呈现的页面的所有 JS 依赖项与其他 Webpack 捆绑包捆绑在一起,并将页面本身构建为静态 HTML 资源,然后我可以从主机页面将其引用为 IFRAME 的src.

方法 1:我尝试file!val!html?attrs=script:src对我的静态 HTML 文件使用 Webpack 的转换。

文件

page/
  lib/
    - jquery.js
    - ...
  - page.html
  - page.js
Run Code Online (Sandbox Code Playgroud)

页面.html

...
<script src="./page.js"></script>
...
Run Code Online (Sandbox Code Playgroud)

页面.js

const $ = require('./lib/jquery.js');
window.foo = () => { ... };
Run Code Online (Sandbox Code Playgroud)

Webpack 配置

{
  ...,
  entry: {
    main: [...],
    page: ['page/page.js']
  }
}
Run Code Online (Sandbox Code Playgroud)

这几乎成功了,因为 JS 包和 HTML 资源确实已生成,并且我可以require在 …

html javascript webpack

5
推荐指数
0
解决办法
1006
查看次数

无限期地通过Nginx缓存HTTP响应失败

我试图告诉nginx永远缓存我的一些资产(js,css),或者至少在很长一段时间内.

这个想法是,一旦资产包被编译并使用/assets/URI前缀(例如/assets/foo-{fingerprint}.js)发布,它就会保留在那里并且不需要改变.

互联网告诉我,我应该写下面的规则:

location ~ ^/assets/.*-([^.]+)\.(js|css)$ {
  gzip_static on; # there's also a .gz of the asset
  expires max;
  add_header Cache-Control public;
  add_header Last-Modified "";
  add_header ETag "";
  break;
}
Run Code Online (Sandbox Code Playgroud)

我希望这会导致HTTP代码304"未修改"的响应,但我得到的是每次都是一致的HTTP 200(OK).

我尝试了其他一些方法,例如:

a)明确将修改时间设置为过去的恒定时间点;

add_header Last-Modified "Thu, 01 Jan 1970 00:00:00 GMT";
Run Code Online (Sandbox Code Playgroud)

b)改用If-None-Match支票;

add_header ETag $1;
if_modified_since off;
Run Code Online (Sandbox Code Playgroud)

然而,唯一真正起作用的是:

add_header Last-Modified "Thu, 01 Jan 2030 00:00:00 GMT";
if_modified_since before;
Run Code Online (Sandbox Code Playgroud)

我迷路了.这与我认为正确的一切相反.请帮忙.

caching http nginx last-modified if-modified-since

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

通过insertAdjacentElement克隆元素,而不是“剪切”它

我正在尝试将元素克隆到DOM中的新位置。我正在使用,insertAdjacentElement但这似乎只是将其“剪切并粘贴”到新位置。是否可以克隆该元素?

document.getElementById('subNav').insertAdjacentElement(
  'afterbegin', 
  document.getElementById('main_0_columnb_0_PanelMenu')
);
Run Code Online (Sandbox Code Playgroud)

javascript

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