После добавления действия в URL, не получая файлы .css и .js - PullRequest
0 голосов
/ 04 июня 2019

Я подаю заявку. Если мой запрос с URL: http://localhost/invoice/public_html/index.php/string-inventory Все отлично работает

Если я запрашиваю с URL: http://localhost/invoice/public_html/index.php/string-inventory/new-record или http://localhost/invoice/public_html/index.php/string-inventory/

Мое приложение не работает на сервере .css или Js. Я решил этот тип проблемы из index.php (без файлов css и js) в index.php / (с файлами css и js), перенаправляя на совершенно другую страницу. Но это не правильный способ сделать. И я получаю 404 для файлов .css и .js для многих страниц с одинаковым контекстом.

Если я прокомментирую

RewriteCond% {REQUEST_URI}!. .css $ [NC] RewriteCond% {REQUEST_URI}!. .js $ [NC]

Тогда есть 404, но файл не обслуживается

Мой .htaccess

Включите переписывание на

Options +FollowSymLinks
RewriteEngine On

# Redirect requests to index.php

RewriteCond %{REQUEST_URI} !=/index.php
RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]

#RewriteCond $1 !^(../src)

 RewriteRule .* index.php?page=$1 [NC,L,QSA]

Мой ожидаемый URL для .css должен быть http://localhost/invoice/src/css/mystyles.css

Где это http://localhost/invoice/public_html/src/css/mystyles.css

но если после контроллера нет действия, оно работает нормально. и я получаю ожидаемый файл. То же самое для Js.

Нужно что-нибудь, просто спросите

1 Ответ

0 голосов
/ 04 июня 2019

Я не могу заглянуть в вашу файловую структуру, но кажется, что ваш / invoice - это URL вашего проекта, а папка 1 из public_html на самом деле является вашей общедоступной корневой папкой.

Я могу порекомендовать вам адаптировать настройки apache (обычно / etc / apache2 / sites-available) для вашего проекта таким образом, что папка public_html является фактической общей папкой.Это решит вышеуказанную проблему.

Еще один совет для вашего .htaccess файла.Вы можете проверить перед перезаписью, является ли запрошенный URL-адрес фактически не существующим файлом (! -F) или каталогом (! -D), вместо того, чтобы указывать каждый возможный тип файла в списке.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ index.php?rt=$1 [NC,L,QSA] (or whatever rewrite you want to do)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...