我正在本地计算机上构建一个应用程序。当我预编译并在生产模式下运行它时,编译后的 JavaScript 停止工作。具体来说,我在一个 CoffeeScript 文件和 application.js 中都有 javascript,两者都在 asset 文件夹中。所有其他 javascript(即 ajax 形式的 jquery 等)都继续工作,这就是为什么我认为它一定与编译有关。
这是我的 application.js 文件:
//= require jquery
//= require jquery_ujs
//= require jquery-ui/autocomplete
//= require jquery-ui/dialog
//= require autocomplete-rails
//= require dresssed
//= require raphael
//= require morris
//= require best_in_place
//= require_tree .
$('.label-stock-health').popover({ html : true});
$(document).keypress(function(e) {
if ($('.search-bar').length){
if($(".search-bar").is(":visible")) {
} else {
$(".search-bar").show();
$("#q_name_cont").focus();
}
}
});
$("#spinner").hide();
$(document).ajaxStart(function() {
$("#spinner").fadeIn('slow');
}).ajaxStop(function() {
$("#spinner").hide();
});
$(document).ready(function() {
$(".show-search").click(function(){
if ($('.search-bar').length){
$(".search-bar").toggle();
}
});
$(".best_in_place").best_in_place();
});
此功能在开发模式下仍然有效。此外,如果我将 JavaScript 硬编码到我的布局模板中,它就会起作用。但如果没有硬编码,它就不会。
对于可能的罪魁祸首有什么建议吗?如果没有,调试这个的最佳方法是什么?
更新 #1 我在 Chrome 开发者工具的 Javascript 控制台中看到的唯一两个错误如下所示。它们还显示在我的本地主机开发实例上,其中我的 javascript 功能正在完整运行。
Uncaught Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.(anonymous function) @ application-6ab26aa5fc5d647a3b5543af7c9838a6.js:9t.(anonymous function) @ application-6ab26aa5fc5d647a3b5543af7c9838a6.js:9(anonymous function) @ application-6ab26aa5fc5d647a3b5543af7c9838a6.js:9 variants:565 GET http://www.example.com/bootstrap/glyphicons-halflings-regular.woff2 404 (Not Found)
最佳答案
我确实在 upwork.com 上写信给你,这里是怎么回事...如果它在本地主机中工作,但在线上传时停止工作,那么就是权限问题。我在goday和blue host中也遇到了同样的问题。尝试使用权限。对于(在蓝色主机上)工作权限设置为 5 5 4。或 5 5 5 我记错了。一旦您弄清楚它们应该是什么,如何删除所有内容并使用新权限重新上传。
关于javascript - 编译后的 Javascript 无法在生产模式下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33092084/