Для вас существуют два понятия, логика и логика, и они не пересекаются
смотрите error_log программы NGINX, там на каждую ошибку 404
{"ru":"","ts":"2024-12-10T15:00:45+03:00","p":"192.168.0.164","rl":1375,"rm":"GET","ru":"/some/not/existing/url/","st":"404","bs":202817,"ref":"","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/24.10.0.0 Safari/537.36","rt":"0.203","urt":"0.202","uct":"0.000","uad":"127.0.0.1:8090","us":"404","uid":"","sslp":"TLSv1.3","sp":"HTTP/1.1"}
2024/12/02 15:34:22 [error] 49643#49643: *5 open() "/srv/www/htdocs/some-site/some-file.html" failed (2: No such file or directory), client: 192.168.0.89, server: _, request: "GET /some/url/some.file HTTP/1.1", host: "192.168.0.164", referrer: "https://some.site/some/url/"
и реальное местоположение файлов
вы ошибаетесь. Повторюсь: вы ошибаетесь. Ну и для закрепления, ещё раз: вы ошибаетесь,
404 попадает в error_log, потому что отсутствие файла - это именно ошибка
2024/12/02 15:34:22 [error] 49643#49643: *5 open() "/srv/www/htdocs/some-site/some-file.html" failed (2: No such file or directory), client: 192.168.0.89, server: _, request: "GET /some/url/some.file HTTP/1.1", host: "192.168.0.164", referrer: "https://some.site/some/url/"
# Default website
server {
listen 80 default_server;
listen 443 ssl default_server;
server_name _;
server_name_in_redirect off;
ssl_certificate /root/rootCA.pem;
ssl_certificate_key /root/rootCA.key;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect ~^(http://[^:]+):\d+(/.+)$ $1$2;
proxy_redirect ~^(https://[^:]+):\d+(/.+)$ $1$2;
set $docroot "/var/www/html/bx-site";
index index.php;
root "/var/www/html/bx-site";
# BXTEMP - personal settings
include conf.d/bx_temp.conf;
# Include parameters common to all websites
include conf.d/bitrix.conf;
location = /api/v1/static/swagger-ui-standalone-preset.js {
root /var/www/html/api/public/;
expires 30d;
try_files $uri $uri/ =404;
error_page 404 /404.html;
}
location = /api/v1/static/swagger-ui.css {
root /var/www/html/api/public/;
expires 30d;
try_files $uri $uri/ =404;
error_page 404 /404.html;
}
location = /api/v1/static/swagger-ui-bundle.js {
root /var/www/html/api/public/;
expires 30d;
try_files $uri $uri/ =404;
error_page 404 /404.html;
}
location /api/v1 {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
}
}
а дальше настраивается постоянный редирект с HTTP на HTTPS, чтобы сайт открывался только с одного протокола
Может подчерпнете что-то полезное для своей ситуации
что он вообще делает в руте ?)
роект вроде как должен быть в /etc/nginx/sites-available
ну или ещё как вариант ошибка в том как ты настроил этот postcss хм
package.json
{
"name": "project",
"version": "1.0.0",
"description": "",
"dependencies": {
"air-datepicker": "^2.2.3",
"array-unique": "^0.3.2",
"blazy": "^1.8.2",
"body-scroll-lock": "^2.6.1",
"comparison-slider": "^1.1.0",
"img-slider": "^2.2.0",
"inputmask": "^4.0.8",
"inputmask-multi": "^1.2.0",
"intersection-observer": "^0.12.2",
"jquery": "^3.5.1",
"jquery-migrate": "^3.0.0",
"magnific-popup": "^1.1.0",
"nouislider": "^11.1.0",
"perfect-scrollbar": "^1.4.0",
"promise-polyfill": "8.1.0",
"selectize": "^0.12.6",
"swiper": "^4.3.3",
"tooltipster": "^4.2.8"
},
"devDependencies": {
"postcss-nesting": "13.0.1",
"postcss-preset-env": "10.1.0",
"autoprefixer": "10.4.20",
"css-mqpacker": "7.0.0",
"cssnano": "7.0.6",
"@babel/preset-env": "^7.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^9.2.1",
"babel-preset-env": "^1.7.0",
"cross-env": "^7.0.3",
"css-loader": "^0.28.9",
"datatables.net": "^1.10.19",
"dotenv": "^16.0.1",
"dotenv-webpack": "^8.1.0",
"mini-css-extract-plugin": "^2.9.2",
"normalize.css": "^8.0.0",
"object-fit-images": "^3.2.3",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"postcss-cssnext": "^3.1.1",
"postcss-extend": "^1.0.5",
"postcss-flexbugs-fixes": "^5.0.2",
"postcss-for": "2.1.1",
"postcss-gradient-transparency-fix": "^4.1.0",
"postcss-import": "^16.1.0",
"postcss-input-style": "^1.0.0",
"postcss-loader": "^8.1.1",
"postcss-nested": "^7.0.2",
"postcss-object-fit-images": "^1.1.2",
"postcss-simple-vars": "7.0.1",
"style-loader": "^0.20.1",
"suggestions-jquery": "^20.3.0",
"svg-sprite-loader": "^5.1.1",
"svg4everybody": "^2.1.9",
"url-loader": "^4.1.1",
"vanilla-text-mask": "^5.1.1",
"webpack": "^5.96.1",
"webpack-cli": "^5.1.4"
},
"scripts": {
"webpack": "webpack",
"build": "cross-env NODE_ENV=production webpack"
}
}
c версиями сам разберешься
а не от куда-то там, то есть при помощи path / __dirname и т.д
вот видишь как ты указал путь
я всё же склоняюсь к тому что проблема в остальном конфиге
const params = {
env: process.env.NODE_ENV || 'development'
};
const path = require('path');
const webpack = require('webpack');
const Dotenv = require('dotenv-webpack');
const plugins = {
miniCssExtractPlugin: require("mini-css-extract-plugin"),
svgLoader: require('svg-sprite-loader/plugin'),
cssOptimize: require('optimize-css-assets-webpack-plugin'),
jsOptimize: require('terser-webpack-plugin')
};
const postCss = {
postCssPresetEnv: require('postcss-preset-env'),
import: require('postcss-import'),
nested: require('postcss-nested'),
cssFor: require('postcss-for'),
simpleVars: require('postcss-simple-vars'),
flexbugs: require("postcss-flexbugs-fixes"),
inputStyle: require("postcss-input-style"),
objectFit: require("postcss-object-fit-images"),
gradientFix: require('postcss-gradient-transparency-fix'),
extend: require('postcss-extend'),
};
module.exports = {
context: path.resolve(__dirname + '/app'),
entry: {
subscription: './app-subscription.js',
critical: './app-crit.js',
main: './app.js',
},
stats: {children: false},
watch: params.env == 'development',
watchOptions: {
aggregateTimeout: 50
},
resolve: {
modules: [
(path.resolve(__dirname)),
(path.resolve(__dirname) + '/vendor'),
(path.resolve(__dirname) + '/node_modules')
],
extensions: ['*', '.js', '.css']
},
resolveLoader: {
modules: [
path.resolve(__dirname),
path.resolve(__dirname) + '/node_modules',
path.resolve(__dirname) + '/node_modules'
]
},
output: {
path: path.resolve(__dirname + '/build'),
publicPath: '/local/client/build/',
filename: '[name].js',
library: 'App'
},
module: {
rules: [
{
test: /\.css$/,
use: [
plugins.miniCssExtractPlugin.loader,
'css-loader',
{
loader: "postcss-loader",
options: {
sourceMap: true,
postcssOptions: {
plugins: () => [
postCss.import(),
postCss.cssFor(),
postCss.simpleVars(),
postCss.postCssPresetEnv(),
postCss.nested(),
postCss.flexbugs(),
postCss.inputStyle(),
postCss.objectFit(),
postCss.gradientFix(),
postCss.extend(),
]
}
},
},
],
},
{
test: /\.js$/,
exclude: /(node_modules|vendor)/,
loader: 'babel-loader',
options: {
cacheDirectory: true,
presets: ['@babel/preset-env']
}
},
{
test: /\.(svg)$/,
use: [
{
loader: 'svg-sprite-loader',
options: {
extract: true,
}
},
'svg-transform-loader',
'svgo-loader'
]
}
]
},
plugins: [
new plugins.miniCssExtractPlugin({
filename: '[name].css'
}),
new plugins.svgLoader(),
new webpack.ProvidePlugin({
Swiper: 'swiper/dist/js/swiper.min.js',
vanillaTextMask: "vanilla-text-mask/dist/vanillaTextMask.js"
}),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new Dotenv({
path: (path.resolve(__dirname) + '/.env')
}),
]
};
if (params.env == 'production') {
module.exports.plugins.push(
new plugins.jsOptimize()
);
/*module.exports.plugins.push(
new plugins.cssOptimize({
cssProcessor: require('cssnano'),
})
);*/
}
А я где-то писал об этом?! Вы мне опять какую-то личную шизу приписываете видимо. Продолжаем ликбез в сельской местности. В access.log попадают данные о всех запрошенных ресурсах, то есть например грузится HTML-страница, в ней есть ссылки на скрипты и стили, так вот они тоже попадут в access.log
Снова голоса в голове сбивают Вас с толку ибо я такого не писал. Тем не менее продолжим нашу просветительскую деятельность. В error.log попадают не открываемые файлы, а ошибки возникшие в работе сервера, в том числе и неудачно открытые файлы
Ну типичная ламерская тема началась: "Я всё знаю! Но тебе не скажу, так как ты тупой!". На простой русский это переводится "Я обосрался и перепутал 404-й ответ с ошибкой ненайденного файла, но чрезмерно раздутое ЧСВ, не позволяет мне признать ошибку"