Ale*_*lex 4 ruby ruby-on-rails asset-pipeline
我是Ruby和ROR框架的新手。我尝试使用JQuery创建Web应用程序。我的步骤是:
//= require jquery2添加到application.js文件<%= javascript_include_tag "application" %>到application.html.erb文件中当我尝试在浏览器中查看页面时,看到以下错误消息:
Sprockets::Rails::Helper::AssetNotFound in LandingPage#index
The asset "application.js" is not present in the asset pipeline.
<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
我做错了什么?我在Google上搜索了此错误,但没有找到任何好的解释。
小智 13
我还使用 application.html.erb 文件中的语法 javascript_include_tag 在 Rails 6(带有 webpack)中运行了这个错误。
使用 rails 6 和 webpack 使用:
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)
iar*_*son 11
如果您在部署到 Heroku 的 Rails 应用程序中遇到此问题,则可能需要指定文件名。
这是针对以前是 Rails 6 应用程序的应用程序,但当我升级到 Rails 7 时,它application.erb不再识别我的application.js文件。
我改变了这个:
<%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>
Run Code Online (Sandbox Code Playgroud)
对此:
<%= javascript_include_tag "/assets/application.js", "data-turbo-track": "reload", defer: true %>
Run Code Online (Sandbox Code Playgroud)
这解决了我的 Heroku 生产问题。
首先,尝试重新启动服务器,通常不需要application.js在资产中包含文件。如果不起作用的话
在config / initializer / assets.rb文件中添加以下内容:
Rails.application.config.assets.precompile += %w(application.js)
Run Code Online (Sandbox Code Playgroud)
注意:添加资产文件后,请不要忘记重启服务器。如果您在Inilalizers中进行了任何更改,则必须重新启动服务器才能看到效果。
小智 5
上面接受的解决方案解决了大多数人的问题,但如果像我一样,您在遵循每条说明和每一个解决方案后仍然遇到问题。下面的内容也许对你有帮助。
在经历了一系列错误之后,我发现了以下作品。
根据我的经验,这与 webpacker 和 nvm 安装有关。要尝试该解决方案,请首先恢复您为调试问题所做的任何其他操作。您需要确保正在运行最新的 webpacker 版本。
然后我会运行:
rails webpacker:compile
Run Code Online (Sandbox Code Playgroud)
在您的终端中。
如果它编译时没有节点警告,那么一切都很好。如果它向您发出有关节点版本的警告,或者无法编译,请安装最新的 LTS 节点版本。我的是16.13.1。对于Ubuntu。。这个很重要。Node 的最新版本不一定是最新的 lts 版本。您需要安装在您的主目录中。跑步:
nvm install --lts
nvm use --lts
Run Code Online (Sandbox Code Playgroud)
您可能想将其设置为默认值,例如。:
nvm alias default 16.13.1
Run Code Online (Sandbox Code Playgroud)
还要确保您的应用程序布局具有:
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)
完成后再次运行 webpacker 编译,如上所述。
如果您在此之后遇到任何问题,您还可以尝试在 config/initializer/assets.rb 文件中添加以下内容:
Rails.application.config.assets.precompile += %w(application.js)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5835 次 |
| 最近记录: |