У меня есть один файл, ads.js
, расположенный в моей папке assets/javascripts
в рельсах.Он содержит одну строку кода - canRunAds = true
, которую я запрашиваю в другом месте моего приложения с помощью приведенного ниже сценария.Если он возвращает undefined
, я отправляю сообщение adblock.
Он отлично работает в разработке, когда я его тестирую, и canRunAds
действительно вернет undefined
.В производстве, однако, с включенным adblock - он записывает сообщение Adblock not detected
- т.е. он не работает должным образом.Странно, но я также получаю, что Chrome сообщает мне ERR_BLOCKED_BY_CLIENT
для файла ads.js
... поэтому файл блокируется, но canRunAds
все еще возвращает true
, как?
Я предварительно скомпилировалмои активы, и файл ads.js
определенно там.Мои знания о том, как рельсы загружают активы, достаточно ограничены, поэтому я не знаю, что делать с Google, чтобы решить эту проблему.Кто-то сказал мне, что рельсовое производство иногда будет «перезагружать и автозагрузывать все, когда угодно», но это вся информация, на которую я должен перейти ...
Любая помощь / указатели будут высоко оценены!
function detectAdblock(){
if( window.canRunAds === undefined){
console.log("Adblock detected")
var donateBanners = document.getElementsByClassName("donations");
for (i = 0; i < donateBanners.length; i++) {
donateBanners[i].style.display = "block";
console.log("Banner displayed! " + i)
}
}
else {
console.log("Adblock not detected");
}
}
window.onload = detectAdblock;