Heroku - 更新 JavaScript 和 CSS 未加载
Heroku - Updated JavaScript and CSS Not Loading
Ruby 版本:2.1.5 | Rails版本:4.1.1
我的 JavaScript 和 CSS 似乎没有在 Heroku 上更新;缓存的资产仍在使用中。我已经删除了我的资产,然后在推送到 Heroku 之前对它们进行了预编译。以下是我用于这些操作的命令:
正在删除:rake assets:clobber
预编译:rake assets:precompile
我还在这些命令前添加了 RAILS_ENV=production
以确保它们已应用于生产环境。在 运行 这些命令之后,我将更改推送到 Heroku。由于推送前的预编译似乎不起作用,我尝试删除我的资产并直接在 Heroku 上再次预编译:
删除:heroku run rake assets:clobber
预编译:heroku run rake assets:precompile
我进入 Heroku 上的 public/assets
文件夹,这是我发现的:
application-0d6606badc40d6084a3782d50651c010.css
application-0d6606badc40d6084a3782d50651c010.css.gz
application-1f88efe0ffc5587eebd6ead885bf955e.js
application-1f88efe0ffc5587eebd6ead885bf955e.js.gz
application-2c65403ee39420c6b413486e7d954ee3.js
application-2c65403ee39420c6b413486e7d954ee3.js.gz
application-39a78b6323729b437725f30cbcffab4d.js
application-39a78b6323729b437725f30cbcffab4d.js.gz
application-3ce5b6684c1d0a23d08a436030fea4c7.js
application-3ce5b6684c1d0a23d08a436030fea4c7.js.gz
application-3f735ad30db75bbfd113371a14c6a3f6.js
application-3f735ad30db75bbfd113371a14c6a3f6.js.gz
application-52560adc9af4957551dad7717d8987ff.js
application-52560adc9af4957551dad7717d8987ff.js.gz
application-534cb930570eba09f1a83d6ef11166c4.js
application-534cb930570eba09f1a83d6ef11166c4.js.gz
application-5bb0fcb61a9adf08e283ad247ed7f102.js
application-5bb0fcb61a9adf08e283ad247ed7f102.js.gz
application-7bcbc33806a603b057b3d09429629c83.css
application-7bcbc33806a603b057b3d09429629c83.css.gz
application-7bd83de789450a3acb020ab8086935e9.css
application-7bd83de789450a3acb020ab8086935e9.css.gz
application-7eb789f2ca8a49db4ff7095d6a7042c9.css
application-7eb789f2ca8a49db4ff7095d6a7042c9.css.gz
application-86b28f1fc499b53f20766336a8a6bb2e.css
application-86b28f1fc499b53f20766336a8a6bb2e.css.gz
application-9dda55d67da5b91e578c1a59509d1fff.js
application-9dda55d67da5b91e578c1a59509d1fff.js.gz
application-b743afe07578e24612848090bb8f8989.js
application-b743afe07578e24612848090bb8f8989.js.gz
application-c614c86454dba513e5e57bf604a9febf.js
application-c614c86454dba513e5e57bf604a9febf.js.gz
application-eee374eeb97a96414374797e0c9fc79c.js
application-eee374eeb97a96414374797e0c9fc79c.js.gz
application-f5dd56cc83e5cbff6105ff7e685d06b2.js
application-f5dd56cc83e5cbff6105ff7e685d06b2.js.gz
application-f8b34c1363fd3d16bc986d5e5b2a7c32.js
application-f8b34c1363fd3d16bc986d5e5b2a7c32.js.gz
bootstrap
manifest-136cd5bd1fa34e1319ea7deb5f933b55.json
manifest-15b224a7001a7bbe038449878d61ae56.json
manifest-1d571fcaa1a29e0de44c84db004f855f.json
manifest-26a02612b9bb6a5cbddde3ba6a6e4c79.json
manifest-2b4afca7ab226f8cf64fa24d11dae039.json
manifest-33d5fb906f0d92f5704b80c31623b9b8.json
manifest-361c06dd69f189783b32790da32fc00d.json
manifest-3e69106386e77ec5b2ef3aea206559cc.json
manifest-6a4901fcc600bed74f94b78afaa60abf.json
manifest-6c912bacdd6db8ea13780aa82cd7cfd6.json
manifest-77805855a3831e1e631438d166242b87.json
manifest-7c5085b7f41e857c1f280a92c37fe4c5.json
manifest-8627268e6cf6557e31e1160093545734.json
manifest-901ca9c0755e35e84b309426fa248352.json
manifest-91fc08ea4efe016b0dafa903dac29665.json
manifest-aebb057a0936e1a9a87fb6540028beda.json
manifest-c562fae7154ab54eec0e038ef8c2f10e.json
manifest-d410fdad309c708ecc1f5465370d6fa5.json
显然,该目录中的文件太多了,但我似乎无法删除它们。我已经删除了整个 public/assets
文件夹和 运行 一个 heroku run rake assets:clobber
命令,但是该文件夹会自动重新创建所有这些文件。
如何清除这个巨大的缓存?
我想通了!每当我 运行 执行 git status
命令时,它都会列出我的 public/assets
文件夹中所有已删除的文件。我认为问题的发生是因为我的 public/assets
文件夹没有被 Git 跟踪。我执行了以下操作来解决问题:
git rm -r public/assets
这从我的 git 存储库 public/assets
中删除了所有预编译的资产,并将它们暂存以供提交。以前,它们没有为提交准备。
RAILS_ENV=production rake assets:precompile
我 运行 这之后是为了在推送到 Heroku 之前预编译我的资产。在 运行 上一个命令之后,我的 public/assets
文件夹被删除了。
git add .
这暂存了我项目中所有新的、修改的和删除的文件以供提交。
之后,我只是提交并推送到 Heroku,现在 Heroku 只列出 public/assets
文件夹中的几个文件!我还在我的网站上看到了更新后的 JavaScript 和 CSS!
Ruby 版本:2.1.5 | Rails版本:4.1.1
我的 JavaScript 和 CSS 似乎没有在 Heroku 上更新;缓存的资产仍在使用中。我已经删除了我的资产,然后在推送到 Heroku 之前对它们进行了预编译。以下是我用于这些操作的命令:
正在删除:rake assets:clobber
预编译:rake assets:precompile
我还在这些命令前添加了 RAILS_ENV=production
以确保它们已应用于生产环境。在 运行 这些命令之后,我将更改推送到 Heroku。由于推送前的预编译似乎不起作用,我尝试删除我的资产并直接在 Heroku 上再次预编译:
删除:heroku run rake assets:clobber
预编译:heroku run rake assets:precompile
我进入 Heroku 上的 public/assets
文件夹,这是我发现的:
application-0d6606badc40d6084a3782d50651c010.css
application-0d6606badc40d6084a3782d50651c010.css.gz
application-1f88efe0ffc5587eebd6ead885bf955e.js
application-1f88efe0ffc5587eebd6ead885bf955e.js.gz
application-2c65403ee39420c6b413486e7d954ee3.js
application-2c65403ee39420c6b413486e7d954ee3.js.gz
application-39a78b6323729b437725f30cbcffab4d.js
application-39a78b6323729b437725f30cbcffab4d.js.gz
application-3ce5b6684c1d0a23d08a436030fea4c7.js
application-3ce5b6684c1d0a23d08a436030fea4c7.js.gz
application-3f735ad30db75bbfd113371a14c6a3f6.js
application-3f735ad30db75bbfd113371a14c6a3f6.js.gz
application-52560adc9af4957551dad7717d8987ff.js
application-52560adc9af4957551dad7717d8987ff.js.gz
application-534cb930570eba09f1a83d6ef11166c4.js
application-534cb930570eba09f1a83d6ef11166c4.js.gz
application-5bb0fcb61a9adf08e283ad247ed7f102.js
application-5bb0fcb61a9adf08e283ad247ed7f102.js.gz
application-7bcbc33806a603b057b3d09429629c83.css
application-7bcbc33806a603b057b3d09429629c83.css.gz
application-7bd83de789450a3acb020ab8086935e9.css
application-7bd83de789450a3acb020ab8086935e9.css.gz
application-7eb789f2ca8a49db4ff7095d6a7042c9.css
application-7eb789f2ca8a49db4ff7095d6a7042c9.css.gz
application-86b28f1fc499b53f20766336a8a6bb2e.css
application-86b28f1fc499b53f20766336a8a6bb2e.css.gz
application-9dda55d67da5b91e578c1a59509d1fff.js
application-9dda55d67da5b91e578c1a59509d1fff.js.gz
application-b743afe07578e24612848090bb8f8989.js
application-b743afe07578e24612848090bb8f8989.js.gz
application-c614c86454dba513e5e57bf604a9febf.js
application-c614c86454dba513e5e57bf604a9febf.js.gz
application-eee374eeb97a96414374797e0c9fc79c.js
application-eee374eeb97a96414374797e0c9fc79c.js.gz
application-f5dd56cc83e5cbff6105ff7e685d06b2.js
application-f5dd56cc83e5cbff6105ff7e685d06b2.js.gz
application-f8b34c1363fd3d16bc986d5e5b2a7c32.js
application-f8b34c1363fd3d16bc986d5e5b2a7c32.js.gz
bootstrap
manifest-136cd5bd1fa34e1319ea7deb5f933b55.json
manifest-15b224a7001a7bbe038449878d61ae56.json
manifest-1d571fcaa1a29e0de44c84db004f855f.json
manifest-26a02612b9bb6a5cbddde3ba6a6e4c79.json
manifest-2b4afca7ab226f8cf64fa24d11dae039.json
manifest-33d5fb906f0d92f5704b80c31623b9b8.json
manifest-361c06dd69f189783b32790da32fc00d.json
manifest-3e69106386e77ec5b2ef3aea206559cc.json
manifest-6a4901fcc600bed74f94b78afaa60abf.json
manifest-6c912bacdd6db8ea13780aa82cd7cfd6.json
manifest-77805855a3831e1e631438d166242b87.json
manifest-7c5085b7f41e857c1f280a92c37fe4c5.json
manifest-8627268e6cf6557e31e1160093545734.json
manifest-901ca9c0755e35e84b309426fa248352.json
manifest-91fc08ea4efe016b0dafa903dac29665.json
manifest-aebb057a0936e1a9a87fb6540028beda.json
manifest-c562fae7154ab54eec0e038ef8c2f10e.json
manifest-d410fdad309c708ecc1f5465370d6fa5.json
显然,该目录中的文件太多了,但我似乎无法删除它们。我已经删除了整个 public/assets
文件夹和 运行 一个 heroku run rake assets:clobber
命令,但是该文件夹会自动重新创建所有这些文件。
如何清除这个巨大的缓存?
我想通了!每当我 运行 执行 git status
命令时,它都会列出我的 public/assets
文件夹中所有已删除的文件。我认为问题的发生是因为我的 public/assets
文件夹没有被 Git 跟踪。我执行了以下操作来解决问题:
git rm -r public/assets
这从我的 git 存储库 public/assets
中删除了所有预编译的资产,并将它们暂存以供提交。以前,它们没有为提交准备。
RAILS_ENV=production rake assets:precompile
我 运行 这之后是为了在推送到 Heroku 之前预编译我的资产。在 运行 上一个命令之后,我的 public/assets
文件夹被删除了。
git add .
这暂存了我项目中所有新的、修改的和删除的文件以供提交。
之后,我只是提交并推送到 Heroku,现在 Heroku 只列出 public/assets
文件夹中的几个文件!我还在我的网站上看到了更新后的 JavaScript 和 CSS!