За последние 24 часа нас посетили 21882 программиста и 989 роботов. Сейчас ищут 677 программистов ...

Редирект на другой порт в Laravel (blade) + Docker

Тема в разделе "Laravel", создана пользователем Alexus, 5 июл 2022.

  1. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Проблема проста и банальна: равернул Ларку с помощью докера, но теперь не могу поменять порт по умолчанию в blade, искал способ сделать это через webpack и через env, но пока не получается, все время редиректит на стандартный 127.0.0.1

    Сам сервер расположен на порту 8080.
    Гугл что-то пока непог

    Подскажите пожалуйста как решить проблему
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Blade - это шаблонизатор, он никого никуда не редиректит. Веб-пак - сборщик жабаскрипта, так что тоже никого никуда не редиректит. Что вы пытаетесь сделать, пока не понятно.
     
  3. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Хорошо извиняюсь за неточности в вопросе, попробую конкретизировать:

    После поднятия сервера через docker-compose up и вызова сборщика через npm run dev основной хост открывается на порту 8080, все работает но админка написа на blade, где используются стандартные функции route(), mix() и asset(), все они после обработки передают запросы на 127.0.0.1 то есть без порта 8080, я пробовал изменить это в файле env APP_URL=127.0.0.1:8080, так же делал это в webpack через browserSync или просто options, но ничего не меняется в blade подставляется адрес 127.0.0.1 без порта.

    Как поменять это чтобы порт менялся на 8080? не хотелось бы вручную менять все это в каждом методе, скин прикрепляю
    Снимок экрана от 2022-07-05 22-15-13.png
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Судя по картинке, сервер с nginx у вас на localhost:3002, а что на 8080 - вообще не очень понятно, видимо, какой-нибудь дев-сервер фронта. Но вот почему не взялся этот localhost:3002, это не понятно. Эти хелперы хост берут не из env, по идее, а из заголовков. Исключене - если где-то стоит вызов URL::forceRootUrl. Покажите на всякий случай docker-compose.yml и mix.js
     
    #4 mkramer, 6 июл 2022
    Последнее редактирование: 6 июл 2022
    Alexus нравится это.
  5. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Доброе утро, спасибо за ответ, на 3002 dev среда npm (npm run watch) разворачивается, я могу скинуть другой скрин это одно и то же
    Снимок экрана от 2022-07-06 10-46-39.png

    webpack:
    Код (Javascript):
    1. let env_url = process.env.APP_URL.replace("http://", "");
    2.  
    3. if (mix.isWatching()) {
    4.   // mix.bundleAnalyzer();
    5. }
    6.  
    7. if (mix.inProduction()) {
    8.   mix.version();
    9. }
    10.  
    11. mix
    12.   .setPublicPath("public")
    13.   .options({
    14.     processCssUrls: false,
    15.     postCss: [],
    16.     uglify: {
    17.       uglifyOptions: {
    18.         compress: true,
    19.         mangle: true,
    20.         output: {
    21.           comments: false,
    22.           beautify: false
    23.         }
    24.       }
    25.     }
    26.   })
    27.   .js("resources/assets/js/client/app.js", "public/js/client.js")
    28.   .js("resources/assets/js/admin/app.js", "public/js/admin.js")
    29.   .sass("resources/assets/sass/client/main.scss", "public/css/client.css")
    30.   .sass(
    31.     "resources/assets/sass/client/blades/mainblades.scss",
    32.     "public/blades/styles/layout.css"
    33.   )
    34.   .sass("resources/assets/sass/admin.scss", "public/css/admin.css")
    35.   .copy("resources/assets/images", "public/images/", false)
    36.   .copy("resources/assets/blades", "public/blades/", false)
    37.   .copy("resources/assets/inroot", "public/", false)
    38.   .copy("resources/assets/files", "public/files/", false)
    39.   .webpackConfig(webpack => {
    40.     return {
    41.       plugins: [
    42.         new webpack.ProvidePlugin({
    43.           $: "jquery",
    44.           jQuery: "jquery",
    45.           "window.jQuery": "jquery"
    46.         }),
    47.         new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
    48.         new webpack.DefinePlugin({
    49.           BUILD_MODE: JSON.stringify(process.env.NODE_ENV),
    50.           APPNAME: JSON.stringify(process.env.APP_NAME),
    51.           GIT_DATE: JSON.stringify(gitDateStr),
    52.           GIT_VERSION: JSON.stringify(gitRevisionPlugin.version()),
    53.           GIT_COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash()),
    54.           GIT_BRANCH: JSON.stringify(gitRevisionPlugin.branch())
    55.         })
    56.         // new CleanWebpackPlugin({
    57.         //     cleanOnceBeforeBuildPatterns: [path.join(__dirname, 'public/css/*'), path.join(__dirname, 'public/js/*')]
    58.         // }),
    59.       ],
    60.       module: {
    61.         rules: [
    62.           {
    63.             test: /\.pug$/,
    64.             oneOf: [
    65.               {
    66.                 resourceQuery: /^\?vue/,
    67.                 use: ["pug-plain-loader"]
    68.               },
    69.               {
    70.                 use: ["raw-loader", "pug-plain-loader"]
    71.               }
    72.             ]
    73.           }
    74.         ]
    75.       },
    76.       resolve: {
    77.         alias: {
    78.           Vue: path.join(__dirname, "node_modules/vue"),
    79.           vue: path.join(__dirname, "node_modules/vue"),
    80.           styleguide: path.join(
    81.             __dirname,
    82.             "resources/assets/sass/styleguide.scss"
    83.           ),
    84.           mixins: path.join(__dirname, "resources/assets/sass/mixins.scss")
    85.         }
    86.       }
    87.     };
    88.   })
    89.   .extract([
    90.     "vue",
    91.     "jquery",
    92.     "bootstrap",
    93.     "bootstrap-vue",
    94.     "vee-validate"
    95.   ])
    96.   .disableNotifications()
    97.   // .version()
    98.   .sourceMaps()
    99.   .browserSync({
    100.     open: "external",
    101.     host: env_url,
    102.     proxy: env_url,
    docker-compose:
    Код (Text):
    1.     php:
    2.         container_name: ${SERVICE_NAME}-php
    3.         build:
    4.             context: .docker/php-73/
    5.             dockerfile: Dockerfile
    6.             args:
    7.                 USER_ID: $USER_ID
    8.                 GROUP_ID: $GROUP_ID
    9.         depends_on:
    10.             - mysql
    11.         restart: unless-stopped
    12.         stdin_open: true
    13.         tty: true
    14.         volumes:
    15.             - .:/var/www/html:cached
    16.  
    17.     nginx:
    18.         container_name: ${SERVICE_NAME}-nginx
    19.         build:
    20.             context: ./.docker/nginx/
    21.             dockerfile: Dockerfile
    22.             args:
    23.                 USER_ID: $USER_ID
    24.                 GROUP_ID: $GROUP_ID
    25.         ports:
    26.             - "$CONTAINER_PORT_NGINX:80"
    27.             - 6001:6001
    28.             - 3000:3000
    29.             - 3001:3001
    30.         depends_on:
    31.             - php
    32.         networks:
    33.             - default
    34.         # read_only: true
    35.         tmpfs:
    36.             - /var/cache/nginx
    37.             - /var/lib/nginx
    38.             - /var/lib/nginx/logs/
    39.             - /var/tmp/nginx/proxy
    40.             - /var/tmp/nginx/fastcgi
    41.             - /var/tmp/nginx/client_body
    42.             - /var/tmp/nginx/uwsgi
    43.             - /var/tmp/nginx/scgi
    44.             - /run
    45.             - /tmp
    46.         restart: unless-stopped
    47.         stdin_open: true
    48.         tty: true
    49.         volumes:
    50.             - .:/var/www/html:cached
    51.  
    52. networks:
    53.     default:
     
  6. Alexus

    Alexus Активный пользователь

    С нами с:
    1 май 2018
    Сообщения:
    64
    Симпатии:
    2
    Спасибо за forceRootUrl решило проблему!