Nenačítá se CSS ani js v @layout.latte / default.latte

SkinnyStick
Člen | 6
+
0
-

Zdravíčko, tak jsem tu s další prosbičkou.

Struktura mého projektu. Soubory .css a .js mám ve složce /www/css/ potažmo /www/js/

Přejděme k @layout.latte který mám ve složce /app/presenters/templates/

{**
 * @param string   $basePath web base path
 * @param array    $flashes  flash messages
 *}
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>{ifset title}{include title|stripHtml} | {/ifset}WEB</title>

    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

    <link rel="stylesheet" href="{$basePath}/css/bootstrap.min.css">
    <link rel="stylesheet" href="{$basePath}/css/font-awesome.min.css">
    <link rel="stylesheet" href="{$basePath}/css/ionicons.min.css">
    <link rel="stylesheet" href="{$basePath}/css/AdminLTE.min.css">
    <link rel="stylesheet" href="{$basePath}/css/blue.css">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">

    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
	{block head}{/block}
</head>

<body class="hold-transition register-page">
	<div n:foreach="$flashes as $flash" n:class="flash, $flash->type">{$flash->message}</div>

	{include content}

	{block scripts}
    <script src="{$basePath}/js/jquery.min.js"></script>
    <script src="{$basePath}/js/bootstrap.min.js"></script>
    <script src="{$basePath}/js/icheck.min.js"></script>
    <script>
        $(function () {
        $('input').iCheck({
        checkboxClass: 'icheckbox_square-blue',
        radioClass: 'iradio_square-blue',
        increaseArea: '20%' /* optional */
        });
        });
    </script>
	{/block}
</body>
</html>

A posléze soubor default.latte ve složce /app/presenters/templates/Homepage/

{block content}
<div class="register-box">
  <div class="register-logo">
    <a href="#"><b>Admin</b>LTE</a>
  </div>

  <div class="register-box-body">
    <p n:block="title" class="login-box-msg">Register a new membership</p>

    <form action="#" method="post">
      <div class="form-group has-feedback">
        <input type="text" class="form-control" placeholder="Full name">
        <span class="glyphicon glyphicon-user form-control-feedback"></span>
      </div>
      <div class="form-group has-feedback">
        <input type="email" class="form-control" placeholder="Email">
        <span class="glyphicon glyphicon-envelope form-control-feedback"></span>
      </div>
      <div class="form-group has-feedback">
        <input type="password" class="form-control" placeholder="Password">
        <span class="glyphicon glyphicon-lock form-control-feedback"></span>
      </div>
      <div class="form-group has-feedback">
        <input type="password" class="form-control" placeholder="Retype password">
        <span class="glyphicon glyphicon-log-in form-control-feedback"></span>
      </div>
      <div class="row">
        <div class="col-xs-8">
          <div class="checkbox icheck">
            <label>
              <input type="checkbox"> I agree to the <a href="#">terms</a>
            </label>
          </div>
        </div>
        <div class="col-xs-4">
          <button type="submit" class="btn btn-primary btn-block btn-flat">Register</button>
        </div>
      </div>
    </form>

    <a href="#" class="text-center">I already have a membership</a>
  </div>
</div>
{/block}

Po načtení stránky NetPress se mi ovšem zobrazuje jen čistě bílá stránka, bez stylů a všeho. Kde jsem mohl udělat chybu? Cache jsem promazal. Když si dám zobrazit zdrojový kod a kliknu na cestu k css souborům, vyhodí se mi stránka forbidden. To je v pořádku? Děkuji za rady :)

Editoval SkinnyStick (13. 3. 2018 0:23)

Matey
Člen | 142
+
0
-

Když si dám zobrazit zdrojový kod a kliknu na cestu k css souborům, vyhodí se mi stránka forbidden. To je v pořádku?

To rozhodne v poriadku nie je. Všetky .css, .js a písma musia byť prístupné. Link na to css vypadal byť vporiadku? ak áno tak chyba by mohla byť ešte v .htaccess ak by si tam nebodaj mal zakázaný prístup do zložiek css a js. Alebo Content Security Policy ak sa používa a nemáš povolený prístup style-src 'self' ale to by ťa upozornila vývojárska konzola.

Netuším čo je zač ten netpress.

BigCharlie
Člen | 283
+
0
-

V pořádku to není. Na té chybové hlášce mě zarazilo tohle: Server unable to read htaccess file, denying access to be safe.

Pro klienta (prohlížeč) ty soubory na serveru nejsou dostupné. Tudíž tam buď nejsou, nebo mají z nějakého důvodu špatně nastavená práva.

To nesouvisí s Nette, spíš nastavení hostingu. Zkontroluj existenci .htaccess, a správnost nastavení v něm…

SkinnyStick
Člen | 6
+
0
-

Zdravím, tak jsem vše konzultoval s webhostingem (wedos) a nepochodil jsem. Pro účely otestování jsem využil auto-instalačního balíčku nette přímo od wedosu, abych si byl jistý správností všech .htaccess a podobně a ještě všechny ručně prošel. Stejně, když si vložím vlastní styl do složky /www/css/muj_soubor.css a pote ho volám v hlavičce v @layout.latte, poté si nechám v prohlížeči zobrazit zdrojový kód a tam si kliknu na soubor css, tak mě to sice na něj přesněruje, ale píše to forbidden. Ovšem je zajímavé, že původní style.css z prvotní instalace nette je stále dostupný v prohlížeči (stačí přepsat v adresním řádku na style.css) a zobrazí se :) nějaké další nápady? Třeba co se týče nastavení přímo u webhostingu? Že bych se wedosu poptal na konfiguraci nebo bych si sám mohl něco přenastavit? Nejsem si jistý, jestli to souvisí s tímto problémem, ale pro jistotu zasílám screen z mého webhostingu. Najdete ho zde :) "":https://ctrlv.cz/6QIY

nightfish
Člen | 472
+
0
-

Ukaž nám obsah .htaccessů z následujících cest, v některém z nich nejspíš bude něco špatně:

  • /domains/netpress.cz/
  • /domains/netpress.cz/www/
  • /domains/netpress.cz/www/css/
SkinnyStick
Člen | 6
+
0
-

/domains/netpress.cz/

<FilesMatch "\.json$">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine On
RewriteRule (.*) www/$1 [L]

/domains/netpress.cz/www/

# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)

# disable directory listing
<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [F]

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz|map)$ index.php [L]
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
	</IfModule>
</IfModule>

/domains/netpress.cz/www/css/

Zde není žádný, ale zkoušel jsem tam vytvořit svůj s obsahem allow from all, nic se nestalo. Stále nechápu proč style.css funguje a ostatní nikoli. Může to být tím, že některé .css a .js soubory mají na začátku velké písmeno?

Editoval SkinnyStick (6. 3. 2018 12:08)

CZechBoY
Člen | 3608
+
0
-

Tak samozřejmě velikost písmen by měla být stejná – jak ve filesystemu tak v html.

nightfish
Člen | 472
+
0
-

Pokud style.css funguje a třeba blue.css hodí chybu Forbidden, tak bych tipoval na problém v právech – jako by Apache neměl právo ty soubory přečíst. Můžeš se podívat přes FTP klienta, jaké mají ty soubory práva (chmod)?

SkinnyStick
Člen | 6
+
+1
-

Fixed. Skutečně to bylo oprávněním souborů. Původní style.css měl práva 644 kdežto mnou nahrané soubory jen 640. Všem jsem nastavil práva 644 a ola lá… :) všem moc děkuji za ochotu a na brzkou shledanou u dalšího vlákna :)