2015-05-24 6 views
1

Не уверен, что происходит здесь. Первоначально у меня был код в script.js, но теперь он реорганизован и готов быть в собственном файле. Поэтому после того, как я закончил рефакторинг, я переместил код на base.js. Вот html.Файл JavaScript не заполнен

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Cache-control" content="no-cache"> 
    <title>Draw</title> 
    <link rel='stylesheet' type='text/css' href='style.css'/> 
    <script src="libraries/jquery-2.1.4.js"></script> 
</head> 
<body> 
<canvas id="canvas"> 
    HTML5 Canvas not supported. 
</canvas> 

<script type="text/javascript" src="base.js"></script> 
<script type="text/javascript" src="script.js"></script> 
</body> 
</html> 

По некоторым причинам, хотя, base.js отображается как пустой в хромированных инструментов разработчика и script.js жалуется, что не может найти прототип, определенный в base.js.

Я знаю, что URL-адрес хорош, потому что я намеренно пропустил его, и в консоли разработчика он кричит на меня о невозможности найти его, пока я не исправлю орфографию. Я знаю, что он не кэшируется, потому что я очистил свой кеш. Наконец, я попробовал просто изменить имя на base_prototype.js, и он работает.

Почему это происходит?

EDIT: Добавление script.js base.js

//script.js 
/** 
* Created by carlos on 5/20/15. 
*/ 
var myBase; 

$(function() { 
    myBase = new Base(document.getElementById("canvas")); 
    myBase.draw(minDim()); 



}); 

$(window).resize(function() { 
    myBase.draw(minDim()); 
}); 

function minDim(){ 
    return Math.min($(window).height(),$(window).width()); 

} 

//base.js 
/** 
* Created by carlos on 5/23/15. 
*/ 
function Base(canvas){ 
    this.canvas = canvas; 
    this.context = this.canvas.getContext("2d"); 
    this.grids = 40; 
    this.canvasSize = 0; 
    this.draw = function(size){ 
     this.canvasSize = size; 
     this.canvas.width = size; 
     this.canvas.height = size; 
     $(this.canvas).height(size); 
     $(this.canvas).width(); 

     this.drawZeroMatrixStockGrid(0,this.grids,0,this.grids); 

     this.context.stroke(); 
    }; 

    this.drawZeroMatrixStockGrid = function (startX, endX, startY, endY){ 
     var adjust = this.grids/2; 
     this.drawMatrixStockGrid(startX-adjust , endX-adjust , startY-adjust, endY-adjust); 
    }; 
    this.drawMatrixStockGrid = function(startX, endX, startY, endY){ 

     this.context.beginPath(); 
     this.context.transform(.5, -.5, .5, .5, this.canvasSize/2, this.canvasSize/2); 
     this.context.scale(1,1); 
     for(var x = startX;x<endX + 1 ;x++){ 
      this.context.moveTo(this.getXCoord(this.canvasSize,this.grids,x),this.getYCoord(this.canvasSize,this.grids,startY)); 
      this.context.lineTo(this.getXCoord(this.canvasSize,this.grids,x),this.getYCoord(this.canvasSize,this.grids,endY)); 
     } 

     for(var y = startY;y<endY + 1;y++){ 
      this.context.moveTo(this.getXCoord(this.canvasSize,this.grids,startX),this.getYCoord(this.canvasSize,this.grids,y)); 
      this.context.lineTo(this.getXCoord(this.canvasSize,this.grids,endX),this.getYCoord(this.canvasSize,this.grids,y)); 
     } 

    }; 


    /** 
    * assumes a square canvas 
    * TODO use global vars to clean signature 
    * TODO memoize 
    * */ 
    this.getXCoord = function (canvasSize, grids, coord){ 
     var delta = canvasSize/(grids); 
     return delta*coord; 
    }; 
    this.getYCoord = function(canvasSize, grids, coord){ 
     var delta = canvasSize/(grids); 
     return delta*coord; 
    }; 


} 
+0

Это происходит только в Google Chrome? –

+0

Есть ли у вас браузерные аддоны/плагины? Попробуйте отключить их, если что-то вроде adblock блокирует скрипт. – j08691

+0

@OliverBarnwell Случается в сафари тоже. @ j08691 У меня нет плагинов для браузера, которые это делают. –

ответ

1

Если вы можете просмотреть файл локально через файл: // но не HTTP: //, проблема, скорее всего, идет от установки сервера. Обработчик ответов может перезаписывать ваши статические файлы без предупреждения и отправлять успешные вызовы статуса.

Как вы обнаружили в наших комментариях, контроллер REST действительно отображает запросы GET на шаблон «[/ base]», перезаписывая любые попытки статических файлов, соответствующих имени актива. Изменение имени файла - это самый быстрый путь к разрешению, по крайней мере, на интерфейсе.

Cheers!

Смежные вопросы