app = Rails.application if app.config.public_file_server.enabled # The `ActionDispatch::Static` middleware intercepts requests for static files # by checking if they exist in the `/public` directory. # We're replacing it with our `Gitlab::Middleware::Static` that does the same, # except ignoring `/uploads`, letting those go through to the GitLab Rails app. app.config.middleware.swap( ActionDispatch::Static, Gitlab::Middleware::Static, app.paths["public"].first, headers: app.config.public_file_server.headers ) # If webpack-dev-server is configured, proxy webpack's public directory # instead of looking for static assets if Gitlab.config.webpack.dev_server.enabled && Rails.env.development? app.config.middleware.insert_before( Gitlab::Middleware::Static, Gitlab::Webpack::DevServerMiddleware, proxy_path: Gitlab.config.webpack.public_path, proxy_host: Gitlab.config.webpack.dev_server.host, proxy_port: Gitlab.config.webpack.dev_server.port, proxy_https: Gitlab.config.webpack.dev_server.https ) end end