首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态资源和非静态资源有什么区别?

静态资源和非静态资源有什么区别?
EN

Stack Overflow用户
提问于 2014-06-08 17:08:42
回答 4查看 9.1K关注 0票数 8

我主要是一个前端的开发人员/设计师,不过最近我一直在探索端到端的解决方案。昨天,我使用平均堆栈完成了一个TODO应用程序,并希望开始探索到我的VPS的部署选项。

尽管如此,有人建议我使用nginx作为反向代理来服务静态资源?不幸的是,我被简单的问题困住了。

示例静态资源是什么?

什么因素定义了静态资源?

非静态资源的例子有哪些?

最后,有什么奇怪的边缘情况我应该知道吗?

很抱歉这个问题太幼稚了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-08 17:12:35

在这种情况下,静态资源指的是不使用动态代码生成的资源,这意味着它的内容不会在请求之间发生更改。

图片,JavaScript,CSS等,都是这方面的候选人。基本上,您为这些资源设置了大量的缓存时间,您的Nginx服务器可以在磁盘上保留一个副本(或者在Redis或类似的文件中),这样它们就可以返回到客户端,而不必访问应用程序服务器。

在设置大量缓存时间时,记住使用版本化的文件名是很重要的。例如,头-映像-20140608.png,意味着您可以拥有一个更高的版本,而不必担心旧版本还在缓存中。

票数 13
EN

Stack Overflow用户

发布于 2014-06-08 17:13:32

静态资源不是动态生成的。

静态资源的一个示例是图像。每个请求都是一样的。这是一个文件系统上的文件,不需要任何处理--您只需告诉nginx将此文件发送给用户。

动态资源的一个例子是特定于请求它的用户的json数据(必须专门为该用户生成)。

对于动态资源,这些通常也是您自己执行的特定域代码、对数据库的请求等。

nginx之所以应该提供静态内容,是因为它擅长以并行方式提供该内容--它正是为此而设计的。

如果您使用的是Ruby/Python/node.js/Java等,那么您也可以通过这些过程提供静态资源(只需调用File.open()并开始流数据)--但是这样做要慢得多,而且还可以降低可以服务的同步动态请求的数量。

票数 6
EN

Stack Overflow用户

发布于 2014-06-09 18:56:55

  • 静态资源是不会频繁更改的资源,除非需要,否则可以存储在客户端的浏览器端,以防止在web服务器上加载和在客户端更快地加载站点。
  • 其中一些例子是:图像、javascript、css。
  • 动态资源是web资源上变化的内容,主要是在特定于用户或项的页面上不断变化的数据。
  • 为了确保静态数据减少服务器负载,并确保客户端的快速性能,您需要处理各种特定于服务器的配置,例如启用js文件的压缩,正确地呈现图像的头内容。

当您要更改文件内容时,请确保防止浏览器从缓存中选择此静态旧内容,请使用这些静态资源的urls附加时间戳,以确保在需要时加载已提升的资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24108624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档