10

Ich versuche, eine benutzerdefinierte Manifest-Javascript-Datei von application.js getrennt zu machen. Ich habe den Code von application.js genommen und ihn in eine neue Datei eingefügt, die ich "other_manifest.js" genannt habe und im Verzeichnis "assets/javascripts" abgelegt habe. Hier ist der Code:Rails Asset-Pipeline: Wie benutzerdefinierte Manifest-Datei erstellen

// 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 . 

In meiner assets.rb Datei, habe ich die Zeile enthalten:

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

I vorkompilieren und reinigen Sie die Vermögenswerte vor Ort, und dann, wenn ich die Seite ausführen, werden alle Ich bekomme den genauen Text aus der Manifest-Datei. Es bringt keine der Dateien ein. Wie erstelle ich eine benutzerdefinierte Manifestdatei?

+0

hast du 'application.js' in deiner' app/views/layouts/application.html' Datei ersetzt? – itsnikolay

+0

Ich gebe ein if/else ein, abhängig von der Seite, application.js erscheint oder other_manifest.js erscheint – Philip7899

Antwort

2

Leicht

Sie haben application.js. Erstellen Sie eine zweite Datei: other_manifest.js

Dann in Ihrem Layout layouts/application.html.erb (könnte ein anderes Layout zusammen sein):

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

Und ja, müssen Sie in Ihrem config/initializers/assets.rb (gefolgt von Reboot) hinzuzufügen:

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

Stellen Sie außerdem sicher, die //= require_tree . aus Manifesten zu entfernen. Weil es ALLES Javascript in das Manifest aufnehmen wird (was ein anderes Manifest sinnlos macht)