Для IIS 7.5+ и Rewrite 2.0 вы можете использовать:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
</customHeaders>
</httpProtocol>
<rewrite>
<outboundRules>
<clear />
<rule name="AddCrossDomainHeader">
<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_ORIGIN}" pattern="(http(s)?://((.+\.)?domain1\.com|(.+\.)?domain2\.com|(.+\.)?domain3\.com))" />
</conditions>
<action type="Rewrite" value="{C:0}" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
Объяснение части переменной сервера RESPONSE_Access_Control_Allow_Origin
: в Rewrite вы можете использовать любую строку после RESPONSE_
, и она создаст ответ Заголовок, использующий остальную часть слова в качестве имени заголовка (в этом случае Access-Control-Allow-Origin). Rewrite использует символы подчеркивания «_» вместо тире «-» (переписать их в тире)
Объяснение переменной сервера HTTP_ORIGIN
: Аналогично, в Rewrite вы можете захватить любой заголовок запроса, используя HTTP_
, как префикс. Те же правила с тире (используйте символы подчеркивания «_» вместо тире «-»).
У меня была та же проблема, турболинки не совместимы с хуками JavaScript, которые требуются в древовидном меню.
Для отключения турболинков:
Из app / assets / javascript / application.js удалить,
//= require turbolinks
и из app / views / layout /application.html.erb удалите следующие ссылки на turbolinks,
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
Таким образом, похоже,
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
Вы также можете удалить гем turbolinks из списка Gemfile.
Затем вы должны найти, что ваше древовидное меню работает как положено.
Я решил эту проблему, добавив в файл adminlte js. $(document).on('turbolinks:load',function(){...})
ниже приведен код, в котором я заменил $ (window) .on ('load') на $ (document) .on ('turbolinks: load) внутри js-файла adminlte, функция Tree ()
$ (document) .on ('turbolinks: load', function () {$ (Selector.data) .each (function () {Plugin.call ($ (this));});} );
Попробуйте это в файле макета:
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'