gpt4 book ai didi

javascript - Ruby on Rails Assets 管道无法正常工作

转载 作者:行者123 更新时间:2023-12-03 04:13:42 24 4
gpt4 key购买 nike

我刚才一直在做一个 Ruby on Rails 项目。我创建了一个名为“animals”的 Controller 和一个用于索引操作的 View (index.html.erb)。我不想包含“应用程序”javascript 文件。

所以我创建了animals.js

文件内容是

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= animals.coffee

我还将animals.js和animals.css添加到asset.rb

Rails.application.config.assets.precompile += %w( animals.js )
Rails.application.config.assets.precompile += %w( animals.css )

我的index.html.erb包含以下行

<%= stylesheet_link_tag 'animals', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'animals', 'data-turbolinks-track' => true %>

当我检查服务器生成的源 html 代码时,我发现页面中没有包含 jquery scipts。这只是animal.js 文件。

<head>
<meta name="viewport" content="width=device-width, initial- scale=1.0">
<title>Rails Omniauth</title>
<meta name="description" content="Rails Omniauth">
<link rel="stylesheet" media="all" href="/assets/animals.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b5433a495991b7852b855.css?body=1" data-turbolinks-track="true">
<script src="/assets/animals.self-1d93d37bf2f830ac42e82eb68e3bb0040ece5d23533a05bf77f7407fd59178d3.js?body=1" data-turbolinks-track="true"></script>

</head>

对于为什么包含这些脚本有什么建议吗?

谢谢。

最佳答案

我认为您的问题可能是您有两个具有相同名称(但扩展名不同)的文件。由于 Rails asset helpers 同等对待 coffescript 和 js 文件,这是不明确的:

<%= javascript_include_tag 'animals', 'data-turbolinks-track' => true %>

应该加载哪个文件?我猜它需要按字母顺序排列的第一个,即animals.coffee

要解决此问题,请将 sprocket list 移至 animals.coffee 并删除 animals.js 文件。

# app/assets/animals.coffee
#= require jquery
#= require jquery_ujs
#= require turbolinks
#= require bootstrap-sprockets
#= require_self
alert 'Hello World'

关于javascript - Ruby on Rails Assets 管道无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231490/

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