gpt4 book ai didi

ruby-on-rails - Assets 在预编译时显示 "not precompiled"

转载 作者:行者123 更新时间:2023-12-03 20:26:05 26 4
gpt4 key购买 nike

好的,当我尝试使用 Assets 管道时出现此错误。我不明白是什么原因造成的。

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Photos#show

Showing .../app/views/photos/_photo_view.html.haml where line #2 raised:

jquery.autocomplete isn't precompiled

Extracted source (around line #2):

1: - content_for :scripts do
2: = javascript_include_tag 'jquery.autocomplete'

但是,这是预编译的。我跑了 rake assets:precompile RAILS_ENV=production在启动服务器之前,以及在我的 public/assets 中目录我有文件: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js以及 .js.gz ,它准确地反射(reflect)在 list 中:
#manifest.yml
---
application.js: application-4277323e3f7506b71f45c71e8a3a7c8f.js
jquery.autocomplete.js: jquery-5550a245a55b28927b5552cac182e612.autocomplete.js
jquery.cycle.all.min.js: jquery-183ef696b43944deaee5778d3094dbdd.cycle.all.min.js
jquery.fancybox.js: jquery-e52e44b2b4fb349bade9beb91461a810.fancybox.js
jquery.plupload.queue.js: jquery-f2e7f6ad7d2e5ca50235ed21f8d573cc.plupload.queue.js
jquery.tools.js: jquery-c53e304240fa56767fe0f2a00cb4bceb.tools.js
plupload.full.js: plupload-5dd26ee3fff6b627c19f196e9d1429dd.full.js
application.css: application-ce5217e1714cbc4e9c3ff6c5dfc9b221.css
fancybox.css: fancybox-9ee9c36f391086e4b0629b7df4042390.css
jquery.plupload.queue.css: jquery-661fbf3f503aa32ff11c004838c0820b.plupload.queue.css
jquery.js: jquery-4d23f0cfea862f56deb04f0a8ab1fcee.js
jquery.min.js: jquery-8a50feed8d29566738ad005e19fe1c2d.min.js

我的 application.js 中未加载有问题的 javascript 文件文件,因为我只需要在一个 View 中使用它,而不会在应用程序的其他任何地方使用它。为了解决这个问题(并修复试图编译 sass 部分的 sprockets ),我像这样配置了我的预编译正则表达式:
#environments/production.rb
config.assets.precompile = [/^[a-zA-Z]*\..*/]

(上面的正则表达式预编译任何以字母字符开头的文件,并忽略以非字母字符开头的文件,例如下划线)。

有没有人了解导致这种情况的原因以及如何解决? Assets 管道让我拔毛!

更新

刚刚发现 Rails.configuration.assets.digests 在生产中返回 nil。也许问题出在那里,由于某种原因 sprockets 没有找到 manifest.yml。

我可能弄错了,但在查找 manifest.yml 时,sprockets 似乎没有在配置中使用 assets_host。

https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/sprockets/railtie.rb#L38

最佳答案

添加 .js
javascript_include_tag 'jquery.autocomplete.js'
似乎缺少一个功能。当文件名有句点 '.' 时在名称中,.js查看摘要时不会添加扩展名。

我对 Sprockets::Helpers::RailsHelper 做了一些调试似乎是 digest_for方法获取没有 的逻辑路径.js .

关于ruby-on-rails - Assets 在预编译时显示 "not precompiled",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com