【问题标题】:Why are development assets cached?为什么要缓存开发资产?
【发布时间】:2016-10-10 14:25:01
【问题描述】:

我创建了一个我认为不错的日历布局。我使用 capistrano 配方将其部署到舞台上,而造型看起来就像一场灾难。我想也许部署出错了。我检查了暂存站点,我注意到td 周围有一个边框,而我的开发没有它。有没有这方面的 css 声明?

$ grep -rnw "$MYSITE/current/app/assets/stylesheets" -e ".fc td"
$ tail -n 1000 $MYSITE/current/app/assets/stylesheets/fullcalendar_engine/fullcalendar.css | grep -B10 -A10 ".fc td"
.fc th,
.fc td {
  border-style: solid;
  border-width: 1px;
  padding: 0;
  vertical-align: top;
}

是的。事实上,我的本地机器上也有它:

.fc th,
.fc td {
  border-style: solid;
  border-width: 1px;
  padding: 0;
  vertical-align: top;
}

所以部署没有出错。我的本地环境中发生了一些缓存行为。我在本地运行了以下内容:

rake assets:clean assets:clobber assets:precompile tmp:clear

在那之后,我的本地现在看起来像舞台。我不明白为什么我的本地资产被缓存了。它们应该在每次页面加载时刷新。在development.rb,我没有缓存:

config.cache_classes = false
config.action_controller.perform_caching = false

第一个确保为每个请求重新加载每个 ruby​​ 类(使用 ruby​​ load 而不是 require),第二个确保没有片段缓存。诚然,两者都与资产无关,但我看到的资产 development.rb 中唯一一行是这一行:

config.assets.raise_runtime_errors = true

我是否在开发过程中遗漏了什么?通常当我进行 css 更改并刷新页面时,它会更新更改,但这次没有。是否可以将特定配置传递给 development.rb 以确定始终为每个请求重新加载 css?

【问题讨论】:

    标签: ruby-on-rails caching asset-pipeline


    【解决方案1】:

    也许你在你的开发机器上运行了rake assets:precompile

    这会导致问题,因为assets:precompile 生成资产并将它们放置在public/assets 中。这些静态文件现在优先于动态编译的动态资产。因此,您可能会遇到没有任何更改被提供给浏览器的情况。

    简短回答:确保您已完全清除开发环境中的 public/assets 目录。并且永远不要在开发中运行 rake assets:precompile

    【讨论】:

    • 我确实在本地机器上运行了 assets:precompile,因为当我部署到登台时,我的 capistrano 配方运行 assets:precompile 进行登台,我的登台站点和本地站点看起来完全不同。我必须在我的本地机器上运行 assets:precompile ,所以它看起来像登台。否则,我应该如何让 staging 看起来像我的本地副本?
    • 我的意思是,您可能(无意中?)在部署到登台之前在本地计算机上运行了assets:precompile。这就是导致您的本地资产“卡住”的原因。删除本地 public/assets 目录的内容,从此不再在本地运行 assets:precompile,您应该一切都好。
    • 可以这样想:assets:precompile 在您运行它时“冻结”您的资产。您在此之后所做的任何更改都不会被看到。解决方法是不要再次运行assets:precompile;解决方案是从一开始就永远不要运行它,因为您永远不想“冻结”您的开发环境。
    • 在部署到我的开发机器上登台之前,我没有运行 assets:precompile。我只在部署到 staging 后才运行它,因为 staging 的样式看起来不同。
    • 好的,那请忽略我的回答。对不起!
    猜你喜欢
    • 2012-12-20
    • 2013-06-02
    • 2011-12-30
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多