Я использую Express для обслуживания статических активов. Frontend - это AngularJS 1.x, и у меня включен html5mode. Попытка реализовать Recaptcha где я заметил следующее в Chrome Дев инструментов:Экспресс и статические активы с внешними ресурсами
Uncaught SyntaxError: Unexpected token <
api.js?onload=vcRecaptchaApiLoaded&render=explicit“:1
Когда я нажимаю на функцию, чтобы начать процесс ReCaptcha я получаю:
Error: reCaptcha has not been loaded yet.
До сих пор это имеет смысл быть bacause Я заметил, что строка, о которой сообщает первая ошибка, является частью пути URL для загрузки Recaptcha из Google.
Когда я нажимаю на URL-адрес (api.js? Onload = vcRecaptchaApiLoaded & render = explicit ": 1) в хром-инструментах он загружает мой index.html! Странный!
Это значит, что это имеет какое-то отношение к моему статическому сервису. Я играл с моим экспресс-сервером, пока корова не вернулась домой и не могла понять, как исправить.
Живой пример: http://ninjacape.herokuapp.com
Вот мой код и благодарим Вас за взгляд!
index.html
<script src=“https://www.google.com/recaptcha/api.js?onload=vcRecaptchaApiLoaded&render=explicit“ async defer></script>
express.js
var express = require('express');
var compression = require('compression');
var app = module.exports.prod = exports.prod = express();
var devAPI = 'http://localhost:1337';
app.use(compression());
app.use(express.static('.tmp'));
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/.tmp/index.html');
});
var proxy = require('express-http-proxy');
app.use('/api', proxy(devAPI));
var port = process.env.PORT || 8000;
app.listen(port);