Mojolicious 外部引用不只在一页上工作
Mojolicious External References Not working on only one page
如果有更多有用的代码或错误,请告诉我。
我的问题是我有外部 JS 文件,我的所有页面都可以找到它们接受一个。当我转到我的 "User" 部分时,我得到每个外部文件的 404。而且它看起来好像每个请求两次?
我的外部 JS 在 public 文件夹中。我在每个页面共享的主要布局中也有我的参考资料。
我完全不知道这可能是什么...
我的默认布局包含。
<head>
<script type="text/javascript" src="./search.js"></script>
<script type="text/javascript" src="./employee_information.js"></script>
<script type="text/javascript" src="./requests.js"></script>
</head>
在我的 public 文件夹中,我有(employee_information.js、requests.js 和 search.js)
我的每个导航栏链接如下
%= link_to 'Home' => 'phone_book_form'
%= link_to 'Users' => 'user_index'
%= link_to 'Account' => 'account_details'
我的路径如下
$r->get('/')->name('phone_book_form')->to('PhoneBook#form');
$admin_authorized->get('/user_list')->name('user_index')->to('User#index');
$authorized->get('/account_details')->name('account_details')->to('Account#details');
只有我的用户索引页面找不到外部js。
在 Firefox 开发者工具中
我最初得到 200,然后在下一个我得到 304,然后在我的用户索引页面上我得到 6 404。
我想我发现了问题...
非常感谢任何方向。
您的 javascript 文件以相对方式引用,因为您的路径以 ./
开头。
当您在路线 /
上时(即 http://localhost:3000/), that works fine, because ./search.js
starting at /
is http://localhost:3000/search.js. But when you are on the /user_list
route (i.e. http://localhost:3000/user_list), your ./
is now in /user_list
, so it's looking for a file http://localhost:3000/user_list/search.js。网络服务器现在会在 public
文件夹中查找文件 user_list/search.js
,但不会存在,所以它呈现 404 错误。
| here
<head> V
<script type="text/javascript" src="./search.js"></script>
<script type="text/javascript" src="./user_information.js"></script>
<script type="text/javascript" src="./requests.js"></script>
</head>
相反,使用从根目录 /
开始的绝对路径。所以 URI 应该是:
/search.js
/user_information.js
/request.js
如果有更多有用的代码或错误,请告诉我。
我的问题是我有外部 JS 文件,我的所有页面都可以找到它们接受一个。当我转到我的 "User" 部分时,我得到每个外部文件的 404。而且它看起来好像每个请求两次?
我的外部 JS 在 public 文件夹中。我在每个页面共享的主要布局中也有我的参考资料。
我完全不知道这可能是什么...
我的默认布局包含。
<head>
<script type="text/javascript" src="./search.js"></script>
<script type="text/javascript" src="./employee_information.js"></script>
<script type="text/javascript" src="./requests.js"></script>
</head>
在我的 public 文件夹中,我有(employee_information.js、requests.js 和 search.js)
我的每个导航栏链接如下
%= link_to 'Home' => 'phone_book_form'
%= link_to 'Users' => 'user_index'
%= link_to 'Account' => 'account_details'
我的路径如下
$r->get('/')->name('phone_book_form')->to('PhoneBook#form');
$admin_authorized->get('/user_list')->name('user_index')->to('User#index');
$authorized->get('/account_details')->name('account_details')->to('Account#details');
只有我的用户索引页面找不到外部js。
在 Firefox 开发者工具中
我最初得到 200,然后在下一个我得到 304,然后在我的用户索引页面上我得到 6 404。
我想我发现了问题...
非常感谢任何方向。
您的 javascript 文件以相对方式引用,因为您的路径以 ./
开头。
当您在路线 /
上时(即 http://localhost:3000/), that works fine, because ./search.js
starting at /
is http://localhost:3000/search.js. But when you are on the /user_list
route (i.e. http://localhost:3000/user_list), your ./
is now in /user_list
, so it's looking for a file http://localhost:3000/user_list/search.js。网络服务器现在会在 public
文件夹中查找文件 user_list/search.js
,但不会存在,所以它呈现 404 错误。
| here
<head> V
<script type="text/javascript" src="./search.js"></script>
<script type="text/javascript" src="./user_information.js"></script>
<script type="text/javascript" src="./requests.js"></script>
</head>
相反,使用从根目录 /
开始的绝对路径。所以 URI 应该是:
/search.js
/user_information.js
/request.js