2015-11-02 20 views
0

我嘗試運行Rails應用程序(Rails的4.2.0)在生產模式下使用這些設置:滑軌生產:JavaScript文件無法運行

配置/環境/ production.rb

require 'uglifier' 

Rails.application.configure do 
    config.cache_classes = true 
    config.eager_load = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.assets.js_compressor = Uglifier.new(output: {ascii_only: true, quote_keys: true}) 
    config.serve_static_files = true 
    config.assets.js_compressor = :uglifier 
    config.assets.compile = false 
    config.assets.digest = true 
    config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' 
    config.log_level = :debug 
    config.i18n.fallbacks = true 
end 

配置/初始化/ assets.rb

Rails.application.config.assets.version = '1.0' 
Rails.application.config.assets.precompile += %w(ckeditor/* admin.*) 

應用程序/資產/ APPLICAT ion.js

//= require jquery 
//= require jquery_ujs 
//= require bootstrap-sprockets 
//= require ckeditor/init 
//= require select2 
//= require init/select2 
//= require lib/jquery.mCustomScrollbar.min 
//= require lib/moment.min 
//= require lib/daterangepicker 
//= require init/daterangepicker 
//= require lib/bootstrap-notify 
//= require underscore 
//= require gmaps/google 
// lightgallery: 
//= require lib/lightgallery/picturefill.min.js 
//= require lib/lightgallery/lightgallery 
//= require lib/jquery.mousewheel.min.js 
//= require jquery.sortable 
//= require photos 
//= require_tree ./admin 
//= require_tree . 

應用程序/資產/ photos.js

// Loading photo for resources 
(function($) { 
    conslole.log('It is photos.js') 
    // Check File API support 
    if(window.File && window.FileList && window.FileReader){ 
    var filesInput = document.getElementById('upload_photos'); 
    //... 
    } 

}()); 

我希望在瀏覽器控制檯消息 '這是photos.js' 看,但它是不存在的。

我探索編譯的文件

http://localhost:3000/assets/admin-a0144eae675b202d7e9a9fbca944636e6aa24fe7b0140b44ec68928303bc4717.js

,發現這段代碼在瀏覽器來源:

(function($) { 
    console.log('It is photos.js') 
    // Check File API support 
    if(window.File && window.FileList && window.FileReader){ 
    var filesInput = document.getElementById('upload_photos'); 
    //... 
    } 
}()); 

我不明白爲什麼在控制檯顯示任何消息。

但很多其他js文件和庫工作正常。

回答

0

在您的應用程序目錄中嘗試rake assets:precompile然後在生產中推送新的編譯文件。我遇到了資產文件在生產中沒有正確加載的相同問題,這個命令對我來說是個竅門。

希望它幫助;)

+0

當然,我做到了,但有些js文件並不適用於DOM。 –

+0

您在行尾'conslole.log('它是photos.js')忘記了分號' – BachirC

+0

沒有必要 –