问题标签 [rails-assets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 应用程序资产未加载到开发环境中
每次我在本地启动我的 Rails 应用程序时,都没有显示任何 CSS。浏览器中的调试器显示get
对所有带有指纹的资产文件的请求,但由于找不到文件,它们都失败了。以下是其中一个请求的样子:
GET http://localhost:3000/assets/announcements.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1
在 Rails 服务器控制台中,我收到一个 Rack App Error,以及一个NoMethodError
针对undefined method 'Silence'
. 以下是其中一个错误的样子:
2017-01-08 17:24:49 -0800: Rack app error handling request { GET /assets/normalize.self-cadbbf81015902777c37852b3ea54398335fd421c6c76891c077ec5954211bb4.css }
NoMethodError: undefined method 'silence' for #<Logger:0x007fe1062c1c78
两个错误日志(浏览器控制台和本地主机服务器控制台)都包含同一错误的多个再现,都指向资产(*.js 和 *.css)。
我搜索了无数 StackOverflow 帖子,但无济于事。出于某种原因,这也仅影响这一应用程序;我所有的其他 Rails 应用程序都运行良好。这是我的规格:
导轨版本:5.0.1
红宝石版本:2.3.1p112
我尝试过的事情:
assets:clean
, assets:precompile
,rm -rf /tmp
和/public/assets
directpories,所有之前的开发环境,从github重新克隆存储库和捆绑安装。
jquery - 使用 Rails-assets.org Jquery 时如何处理 UJS(或排除 Rails-assets gem 中的依赖项)
我最近开始使用 Rails-assets.org 并注意到,如果特定资产具有 jQuery 作为依赖项,它会在捆绑时安装来自 Bower 的版本。这复制了 Rails 应用程序中的 jQuery 包(假设使用了默认的“jquery-rails”gem)。
我很乐意只保留任一版本的 jQuery,但在尝试这样做时我发现了两个问题。
如果我从我的应用程序中排除“jquery-rails”gem,我将无法运行与“jquery-rails”打包在一起的“jquery_ujs”。我还没有找到只保留“jquery_ujs”的方法。那可能吗?
从 rails-assets.org 安装 gem 时排除 jQuery 依赖可能会更好,这样我就可以继续在 Rails 中使用默认的 jQuery gem。我用谷歌搜索这个没有成功。这可能吗?
我还想知道如果我同时安装了两个 jQuery 包会不会有问题。Rails 资产管道将选择其中哪一个?我试过了,没有任何错误,但这听起来不是最好的主意。
如果您能指出正确的方向或最佳实践建议,那就太好了。谢谢
font-awesome - Rails 5 + Rails Assets + Fontawesome 不加载字体
通过rails-asset.org安装 Fontawesome并遵循默认说明,字体无法正确加载,我看到的只是框,表明生成的用于加载字体的 url 不正确。
ruby-on-rails - 多个清单文件的Rails 5问题
谢谢你的帮助。
我的问题
在我的 Rails 5 应用程序中,我有 2 个布局,因此我需要设置多个清单文件。
我做了什么
我做了以下事情:
- 这两个
layouts
有一个user.html.erb
和一个main.html.erb
html 文件,在那里我用正确的标签 myapplication.js
inuser.html.erb
和 mymain.js
for链接main.html.erb
。 文件加载,如果我按照
/li>localhost:3000/assets/application.js
清单中包含的 js 文件的全部内容显示,而 at/assets/main.js
仅显示以下几行:我按照以下讨论中包含的说明使用多个清单文件进行 Rails 4 资产预编译,但它们不起作用
/li>
我搜索了 Stackoverflow 并阅读了文档,但从未找到此问题的答案。我在用:
更新
在 main.js 文件中,我包含以下内容作为测试:
非常感谢您的帮助,我真的希望您能帮助我。最好的问候法布里齐奥·贝托利奥
ruby-on-rails-5 - 运行 rake 资产时部署失败:预编译
以下是 capistrano 日志:
暂存环境可以成功部署。另外,当我bundle exec rake assets:precompile
在本地运行时,它也成功了。
所以错误在这里:
这是一个错误activerecord-5.0.2
吗?现在我无法理解源代码,有什么帮助吗?
ruby-on-rails - 无法确定是否存在基于控制器的资产而没有 .js 扩展导轨
我为控制器添加了资产,并希望根据请求包含它们。
问题是它不包含该资产而不写入.js
控制器路径
布局页面上的代码是:
辅助方法:
资产在 admin/popular_schools
其中 admin/popular_schools.js.coffee
<%= controller_specific_js = "#{params[:controller]}.js" %>
上面的行输出: admin/popular_schools.js
并添加它。
网址是:http://localhost:3000/admin/popular_schools
资产.rb:
生产.rb
config.assets.compile = true
在 “#{params[:controller]}.js”中不指定.js的情况下如何运行它,因为通常它不好。
如果我删除 .js,它不会将其插入资产中,但如果我包含它,它就会开始出现。
另外,如果我使用以下代码:
它确实可以在不指定 .js 的情况下工作,但是如果我不想在 assets.rb 文件中包含任何控制器,它们会开始输出异常,该文件不包含在 assets.erb 中,但它确实包含在 assets 文件夹中,出于某些原因我这样做了不想将它们包含在 assets.rb 中
任何解决方法或约定?
ruby-on-rails - 使用 jquery-ui 的 Rails 资产管道问题
更新
我从 jquery 网站下载了最新版本的 jquery 3.1 和 jquery-ui。不幸的是,函数的这个问题.effect()
没有连接到资产管道。我包含了所有必需的 js 和 css 文件,但.effect()
无法正常工作。
此问题仅与 Jquery-ui 有关,而 jquery 方法可以正常工作。我放弃了这个,做一个 git checkout,我现在不会使用 Jquery-ui 效果。
概括
我的资产管道工作正常,但由于我想使用 jquery-ui.effect()
功能,我注意到浏览器控制台中的 jquery-ui.css 样式表存在问题。
我用 1.12.1/jquery-ui.js 在 rails 环境之外测试了这个函数,它工作正常。我可以将jquery-ui.css文件显示在.http://localhost:3000/assets/jquery-ui.css
我做了以下事情:
- 由于我的 jquery-ui.js 文件也是空的,因此
//= require jquery2
我的应用程序 js 中需要。这解决了问题jquery-ui.js
- 由于缺少 jquery-ui.css 文件,我执行了以下操作:
- 运行
rm -rf public/assets
删除该文件夹中的文件(我也尝试过rake assets:clean
) - 运行 Rails 资产:在开发和生产中预编译
- 清除浏览器缓存并使用chrome匿名浏览
这没有解决任何问题,但我可以看到该文件,并且在生产中这个问题不存在。application.css 文件包含 jquery-ui.css。所以也许这.effect()
不适用于css,但对于丢失的js文件?该效果在生产中也不起作用。
https://barteringapps.herokuapp.com/
请按照上面的链接,用 chrome 你可以在 application.js 文件的第 18610 行测试这个函数,设置一个断点,看看它<a id="signupFacebookButton">
不会反弹。点击大底“用facebook注册”触发效果。
我想也许我没有反弹效果,但我可以看到开发中包含的文件,我想这不是问题。Mozilla 给我以下错误“http:localhost:3000/assets/jquery-ui.self-fingerprint.css 无法加载”(我没有清除 mozilla 现金)。
这就是我所知道的,我正在运行的 jquery 版本是 v2.2.4,它与 JqueryUi 兼容。我的 jquery-rails gem 版本是 4.2.2,而我的 jquery-ui 版本是以下 '~> 6.0', '>= 6.0.1'。
文档
我已阅读并遵循以下帖子的说明 Rails Assets Precompile just not working
我读了这个,但我没有跑rm Gemfile.lock
。
找不到'jquery-ui' Rails 3.2
也许我现在的下一步将是执行 Git 并尝试在我的项目中手动包含 jquery-ui 文件。
代码
这是我的宝石文件
这是我的应用程序 js
这是我的应用程序 css
Main.js 包括使按钮弹跳的代码
用于设置按钮样式的 Main.css 代码
Gemfile.lock(相关行)
ruby-on-rails - in rails, javascript files load differently when switching between manifest files
I am using Rails and Bootstrap. I have a page that works perfectly when you just go to it in the browser. When I go to a different page on my site and then click a link that takes me back to the page, the javascript files load in a completely different order. This does not make sense to me as I load the js files in an explicit order as described in my logged_out.js manifest file:
In the browser page, it shows that when I load the page by just going to a url, the files are loaded in the order above. When I get to the page by going through a link, the order of the files are random. How do I fix this so that the files always load in this order?
Another thing to note: I have two manifest files: logged_out.js and logged_in.js. It seems like the order mismatch only happens when I am going from a page with the logged_in.js to the logged_out.js. I need two types of manifest files so there is so deleting either one or moving to one manifest file is not an option.
css - Rails 4.2 升级 - 没有路线匹配 [GET] "/assets/my_custom_scss_files.self.css"
我刚刚升级到 rails 4.2,我发现一些资产错误正在弹出(仅在生产中)。
这些涉及我创建的自定义 CSS 文件和 javascript 文件以及普通文件。
对应的文件production.rb
如下:
除了application.css
他们都突然有了.self.
以前.css
不存在的东西。
它只是预编译的css
而不是js
.
ruby-on-rails - JavaScript 不能在 Heroku 部署中工作,但可以在本地工作
我在 app/assets/javascripts/expand.js 中写了这个函数
该脚本在本地运行良好并按预期运行,但是当我部署到 Heroku 时,它完全停止工作。
作为参考,这里是脚本所作用的 HTML:
调试我已经完成:
通过将 development.rb 中的一行更改为config.assets.debug = false
. 我对rails的了解还不够,无法从中获得任何见解。
我用RAILS_ENV=production bundle exec rake assets:precompile
. 并把它推了上去。
在那之后没有工作我尝试再次预编译git rm -r public/assets/
当这不起作用时,我使用 chrome 或 firefox 上的开发人员工具来查看我的生产环境中加载的所有 uglified js。我看到我的函数似乎已经加载,但是我没有看到我期望的功能,所以我也不知道那里发生了什么。
要查看我看到的内容,您可以访问https://www.shopperbot.com/about并查看资源https://www.shopperbot.com/assets/application-db55113ff25f4decb133ccb74aa98298822de2381cddc0ae3fa8c03b65180dd0.js
。这是一个巨大的文件,因此您需要搜索可扩展这个词。该词是所讨论的功能所独有的。
我对 Rails 还是很陌生,所以我不知道从这里去哪里。我可以尝试更改我的 js 的位置,但我认为这并不理想。有没有人有什么建议?
因为这一切在我的本地环境中都可以正常工作......我怀疑我犯了一些初学者的错误,可以用我还没有找到的一些神奇的 1 班轮来解决。