10

Sto provando a creare un file javascript manifest personalizzato da application.js. Ho preso il codice da application.js e incollato in un nuovo file che ho chiamato "other_manifest.js" e inserito nella directory assets/javascrips. Ecco il codice:Pipeline di asset di rails: come creare file manifest personalizzato

// This is a manifest file that'll be compiled into application.js, which will include all the files 
// listed below. 
// 
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. 
// 
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 
// compiled file. 
// 
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details 
// about supported directives. 
// 
//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require bootstrap 
//= require_tree . 

Nel mio file assets.rb, ho incluso la linea:

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

I precompilare e pulire le attività a livello locale, e poi quando ho eseguire la pagina, tutto ottengo è il testo esatto dal file manifest. Non sta portando in nessuno dei file. Come posso creare un file manifest personalizzato?

+0

hai sostituito 'application.js' nel file' app/views/layouts/application.html'? – itsnikolay

+0

Inserisco un if/else così a seconda della pagina, si presenta application.js o compare altro_manifest.js – Philip7899

risposta

2

facilmente

Si hanno application.js. Creare un secondo file: other_manifest.js

Poi nel layout layouts/application.html.erb (potrebbe essere un layout del tutto diversa):

<% if condition %> 
    <%= javascript_include_tag 'other_manifest' %> 
<% else %> 
    <%= javascript_include_tag 'application' %> 
<% end %> 

E sì, è necessario aggiungere nel vostro config/initializers/assets.rb (seguito da riavvio):

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

Inoltre, assicurarsi di rimuovere il //= require_tree . dai manifesti. Perché includerà TUTTO il javascript nel manifest (rendendo inutile un diverso manifest)