Мое node.js веб-приложение не распознает мой манифест. json - PullRequest
0 голосов
/ 28 января 2020

Я создаю веб-приложение с node.js, express. js и рулями. У меня работает веб-приложение, и теперь я хочу превратить его в PWA, поэтому я написал манифест. json следующим образом:

{
    "name": "Talleres Online",
    "short_name": "Talleres Online",
    "start_url": "./?utm_source=web_app_manifest",
    "display": "standalone",
    "background_color": "#44d1c8",
    "theme_color": "#55bddc",
    "orientation": "portrait",
    "description": "Lleva el control de tu taller a donde vayas, con Talleres Online puedes gestionar el funcionamiento de tu taller mecánico ¡desde cualquier dispositivo!",
    "lang": "es-MX",
    "icons": [{
      "src": "icons/icon-32x32.png",
        "sizes": "32x32",
        "type": "image/png"
      }, {
      "src": "icons/icon-64x64.png",
        "sizes": "64x64",
        "type": "image/png"
      }, {
      "src": "icons/icon-128x128.png",
        "sizes": "128x128",
        "type": "image/png"
      }, {
        "src": "icons/icon-144x144.png",
        "sizes": "144x144",
        "type": "image/png"
      }, {
        "src": "icons/icon-152x152.png",
        "sizes": "152x152",
        "type": "image/png"
      }, {
        "src": "icons/icon-192x192.png",
        "sizes": "192x192",
        "type": "image/png"
      }, {
        "src": "icons/icon-256x256.png",
        "sizes": "256x256",
        "type": "image/png"
      }, {
        "src": "icons/icon-512x512.png",
        "sizes": "512x512",
        "type": "image/png"
      }, {
        "src": "icons/icon-1024x1024.png",
        "sizes": "1024x1024",
        "type": "image/png"
      }]
  }

и когда я пытаюсь посмотреть информацию о манифесте в devtools кажется, что манифеста нет. json, глядя на консоль, он говорит об этом:

Не удалось загрузить ресурс: сервер ответил со статусом манифеста 404 (не найдено). json: 1

Манифест: строка: 1, столбец: 1, синтаксическая ошибка. манифест. json: 1

GET http://localhost: 3000 / манифест. json 404 (не найден) манифест. json: 1

манифест : Строка: 1, столбец: 1, Синтаксическая ошибка.

У руля у меня есть файл main.hbs, который имеет тег head HTML и какой тег body ссылается на другие .hbs файлы для создания сайта, в этом файле main.hbs я помещаю метатег, который ссылается на манифест. json.

Я поместил манифест. json в root из приложение (только рядом с папкой node_modules), в папке / sr c и в папке / publi c, но ни одно из них не работает, я также подключил маршрут для запроса /manifest.json к файл манифеста. json, но он просто изменил ошибку с 404 на 500.

Любая помощь, пожалуйста? Большое спасибо, извините за длинный пост и плохой Engli sh.


const express = require('express');
const morgan = require('morgan');
const exphbs = require('express-handlebars');
const path = require('path');
const flash = require('connect-flash');
const session = require('express-session');
const MySqlStore = require('express-mysql-session');
const passport = require('passport');

const { database } = require('./keys');

//Inicializaciones

const app = express();
require('./lib/passport');

//Configuraciones

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.engine('.hbs', exphbs({
    defaultLayout: 'main',
    layoutsDir: path.join(app.get('views'), 'layouts'),
    partialsDir: path.join(app.get('views'), 'partials'),
    extname: '.hbs',
    helpers: require('./lib/handlebars')
}));
app.set('view engine', '.hbs');

//Middlewares

app.use(session({
    secret: 'carhelpmysqlsession',
    resave: 'false',
    saveUninitialized: 'false',
    store: new MySqlStore(database)
}));
app.use(flash());
app.use(morgan('dev'));
app.use(express.urlencoded({extends: false}));
app.use(express.json());
app.use(passport.initialize());
app.use(passport.session());

//Variables Globales

app.use((req, res, next) => {
    app.locals.success = req.flash('success');  
    app.locals.message = req.flash('message');
    app.locals.user = req.user; 
    next();
});

//Rutas

app.use(require('./routes/index.js'));
app.use(require('./routes/authentication.js'));
app.use(require('./routes/carhelp.js'));
app.use(require('./routes/estados.js'));



// Public
app.use(express.static(path.join(__dirname, 'public')));

//Inicializar Servidor

app.listen(app.get('port'), () => {
    console.log('Server on port', app.get('port'));
});

Вопрос решен, но вот моя конфигурация express, если кто-то еще имеет такую ​​же проблему, может решить ее с легкостью.

1 Ответ

0 голосов
/ 28 января 2020

Так что там написано syntax error.

Я думаю, посмотрите на файл манифеста json, правильно он отформатирован или нет. В фрагменте я вижу отсутствующую { открывающую скобку, которая может возникнуть при копировании. Вы можете попробовать JSON Validator, например , этот , или вы можете использовать this для проверки файла манифеста.

Если все правильно, вы можете очистить кеш браузера.

Надеюсь, это вам поможет.

Обновление:

manifest.json должно быть в папке static/public, из которой вы отправляете файл stati c и используете его как stati c файл в express.

...