2016-11-23 3 views
0

Я немного отстраняюсь от этого, и я, очевидно, пропустил что-то простое. У меня есть приложение Django, которое я обслуживаю на nginx. Все остальные статические файлы в приложении обслуживаются нормально, за исключением некоторых .htm-файлов, которые являются частью библиотеки для редактора TinyMCE HTML.NGINX не обслуживает файлы htm, но обслуживает все остальные статические файлы

Путь к файлу не обслуживаемого является: http://www.myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm/

Состояния файла журнала Nginx ошибка является: «/ главная/Установщик/CMP/CML/статический/администратор/TinyMCE/jscripts/tiny_mce/плагины/advlink/link.htm/index.html «не найден (20: не каталог)»

(Кстати, я не знаю, почему Nginx продолжает думать, что путь к файлу приводит к каталогу.)

Но этот файл испытания: http://www.myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/tst.html подается нормально.

Мой конфигурационный файл является:

upstream app_server_wsgiapp { 
    server localhost:8000 fail_timeout=0; 
} 

server { 
    listen 80; 
    server_name XX.XXX.X.XX; 
    access_log /var/log/nginx/XX.XXX.X.XX.access.log; 
    error_log /var/log/nginx/XX.XXX.X.XX.error.log info; 
    keepalive_timeout 5; 

#nginx serve up static files and never send to the WSGI server 
location /static { 
    include /etc/nginx/mime.types; 
    autoindex on; 
    alias /home/deployer/cmp/cml/static; 
} 

location/{ 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header Host $http_host; 
    proxy_redirect off; 
    if (!-f $request_filename) { 
    proxy_pass http://app_server_wsgiapp; 
    break; 
    } 
} 

#this section allows Nginx to reverse proxy for websockets 
location /socket.io { 
    proxy_pass http://app_server_wsgiapp/socket.io; 
    proxy_redirect off; 
    proxy_buffering off; 

    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_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "Upgrade"; 

} 
} 

Соответствующие части типов файлов мим:

types { 
     text/html        html htm shtml; 
     text/css        css; 
     text/xml        xml rss; 
     image/gif        gif; 
     image/jpeg        jpeg jpg; 
     application/x-javascript    js; 
     application/atom+xml     atom; 
     ... 
     } 

Любые предложения, чтобы получить, что link.htm обслуживания?

Обновление: после нескольких попыток я заметил, что журнал ошибок nginx говорит: «/home/deployer/cmp/cml/static_proxy/index.html не найден», и запрос поступает из: «GET/static_proxy /? u = myurl.org/static/admin/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm

(Для справки это не мое приложение, я помогаю мигрировать друг учителя от Gondor до Linode после того, как ее Dev поручил.)

Статический_прокси исходит из библиотеки tinymce. Но это не проблема в dev на моей машине. Там все отлично работает. Я попытался добавить в этот блок местоположения, но это было просто потрясающее предположение.

location /static_proxy { 
     autoindex on; 
     root /home/deployer/cmp/cml; 
     } 

Если изменить директиву корня в выше

alias /home/deployer/cmp/cml/static; 

Я получаю статический список каталогов в всплывающем окне, которое, кажется, как улучшение.

+0

Конечно, ссылка неправильно; он не должен иметь косой черты. –

+0

Эта косая черта добавляется сервером, когда я пытаюсь загрузить этот URL без него. Но, если я изменю расширение файла на .html, а не на .htm, файл загрузится просто отлично. – OmahaJoe

+0

Итак, какие файлы находятся в каталоге '/ home/deployer/cmp/cml/static/tinymce/jscripts/tiny_mce/plugins/advlink /'? –

ответ

0

У меня была такая же проблема с Wordpress-Mailpoet-TinyMCE.

После борьбы немного, я заметил, все файлы, оканчивающиеся .htm или .html не были найдены. При переименовании одного и того же файла с другим суффиксом, например .jpg или .gif, он будет успешно подан. Итак, я, наконец, добавляю специальную директиву NGINX, позволяющую htm и html-файлам поступать из расширения mailpoet. Вот оно:

# Mailpoet - tinyMCE quick fix 
location ~ /wp-content/plugins/wysija-newsletters/js/tinymce/.*\.(htm|html)$ { 
add_header Access-Control-Allow-Origin *; 
access_log off; log_not_found off; expires 30d; 
} 

Надеется, что это могло бы помочь другим ...

0

Я был получает timymce выпуска для работы с Nginx.

Следующая ссылка помогла мне решить проблему. Не уверен, что это лучшее решение, но оно отлично работает для того, что мне нужно.

https://techvangelist.net/nginx-global-rewrite-issue-js-css-images-not-found/

я смог TinyMCE работать, добавив директиву, как это ...

#tinymce fix 
location ~ .(mezzanine|tinymce)/(.+)$ { 
    try_files $uri $uri/ /$1/$2; 
}