[under construction]

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=put_your_google_map_api_key_here;sensor=false"></script>
<script type="text/javascript" src="assets/js/jquery.gmap.min.js"></script>

這樣做在development mode可以work,但是在production mode會失敗。原因是assets precompile的關係:Rails會把/app/assets/裡的東西透過rake作precompile給production mode使用(透過指令 rake assets:precompile),以達到效能最佳化,然後Rails會把precompile過後的檔案放在/public/assets裡。但是Rails並不會去precompile你自己include的javascript或stylesheet檔,除非用javascript_include_tag 或stylesheet_link_tag,透過Rails的指令去include它才能偵測到,也才會被丟進precompile process裡。所以對於這些你自己include的檔案,你必須自己丟進/public裡,例如上面的html include javascript的寫法,在Rails裡就必須把jquery.gmap.min.js放在/public/assets/js裡,並且在application.rb打開以下選項,在production mode才能正常運作。

config.assets.enabled = true

Comments

comments powered by Disqus