2015-11-11 4 views
0

У меня есть виртуальная машина (построена с puPHPet и бродягой). Когда я меняю файл .js, веб-сервер неправильно это использует.nginx выполняет неправильные файлы js при изменении

Это конец моего файла JS:

$(document).ready(function() { 
     // $('.chat-menu-toggle').sidr({ 
     //  name: 'sidr', 
     //  side: 'right', 
     //  onOpen: function() { 
     //   PslConversation.sidebarOpen = true; 
     //  }, 
     //  onClose: function() { 
     //   PslConversation.sidebarOpen = false; 
     //  } 
     // }); 
     PslConversation.init(); 
     window.PslConversation = PslConversation; 
    }); 
}); 

Когда добавить 3 символов в любом месте файла, в браузере получите это на конец файла:

�� 

Я проверил его в шестнадцатеричном формате.

EF BF BD EF BF BD 

Если я удалю в любом месте файла, он будет удален из конца файла в браузере. Я пробовал это разными браузерами, результат все время такой же.

Я использую nginx с php-fpm. Если я перезапущу nginx, ничего не изменится, но когда я меняю php-файлы, проблем нет, только в js и css.

У меня нет кеша, насколько я знаю.

Мой Nginx конфигурации:

server { 
    listen 192.168.56.102:80; 

    keepalive_timeout 70; 

    listen 80; 

    set $host_path "/var/www/html"; 

    server_name frontend.psl; 
    root $host_path/frontend/web; 
    set $yii_bootstrap "index.php"; 

    charset utf-8; 

    location/{ 
     index index.html $yii_bootstrap; 
     try_files $uri $uri/ /$yii_bootstrap?$args; 
    add_header Access-Control-Allow-Origin *; 
    } 

    location ~ \.php { 
     fastcgi_split_path_info ^(.+\.php)(.*)$; 

     #let yii catch the calls to unexising PHP files 
     set $fsn /$yii_bootstrap; 
     if (-f $document_root$fastcgi_script_name){ 
      set $fsn $fastcgi_script_name; 
     } 

     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fsn; 
    fastcgi_read_timeout 150; 
     #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI 
     fastcgi_param PATH_INFO  $fastcgi_path_info; 
     fastcgi_param PATH_TRANSLATED $document_root$fsn; 
    } 

    location ~ /\. { 
     deny all; 
     access_log off; 
     log_not_found off; 
    } 
} 

Пожалуйста, помогите найти проблему.

+0

Какой текстовый редактор вы используете? EF BF BD является [символом замены Unicode] (https://en.wikipedia.org/wiki/Specials_ (Unicode_block) #Replacement_character), это может произойти, если текстовый редактор неправильно интерпретирует кодировку символа файла и пытается просто открыть его как utf-8. – cfreear

+0

Я использую возвышенный текст 3 через общий каталог. Но если я отредактирую файл на сервере с mcedit, результат будет таким же. – MrRP

+0

Попробуйте подключить плагин [EncodingHelper] (https://github.com/titoBouzout/EncodingHelper), чтобы проверить, какой символ кодирует ваш файл (и при необходимости конвертировать его в utf-8!) – cfreear

ответ

1

я имел такой же вопрос ...

Добавление этой линии sendfile off; в конце Nginx конфигурационный файл должен исправить это

как

server { 
     ... ... ... 
     ... ... ... 
     location/{ 
       ... ... ... 
       ... ... ... 
     } 

     location ~ \.php$ { 
      ... ... ... 
      ... ... ... 
     } 

     sendfile off; 

    } 
+0

Это сработало для меня. Не забудьте перезапустить сервер nginx. Например, с помощью 'sudo service nginx restart' на Ubuntu. – Simon

Смежные вопросы